网络开发框架初识以及socket

cs 框架

sever client

手机端:统一了程序的入口(微信小程序、微信公众号等)

bs框架

sever browser

pc端:趋势—统一了程序的入口(浏览器百度)

基于tcp协议的socket

 1 #server服务器(百度总部)
 2 import socket 
 3 sk = socket.socket()                       #买手机
 4 sk.bind(('127.0.0.1', 9000))            #装手机卡          
 5 sk.listen()                                      #开机
 6 while True:
 7     try:
 8         conn, addr = sk.accept()         #等消息
 9         #conn是一个连接对象,里边存储了双方的ip地址和端口,addr相当于备份
10         print(conn)
11         while True:
12             msg = input('>>>')
13             conn.send(msg.encode('utf-8'))   #给对方发信息
14             if msg == 'q':                             #q为退出
15                 break
16             msg = conn.recv(1024)               #接收对方的信息
17             if msg == b'q':
18                 break
19             print(msg.decode('utf-8'))          #打印接收的信息
20         conn.close()
21     except UnicodeDecodeError:
22         pass
23 sk.closer()
24 #sk.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
25 #在bind前加,重用ip和端口,解决ip和端口被占用问题
26 
27 #client 客户端(浏览器访问百度)
28 import socket
29 
30 sk = socket.socket()
31 sk.connect(('127.0.0.1',9000))
32 while True:
33     msg = sk.recv(1024)              #接收信息
34     if msg == b'q':                        #q退出
35         break
36     print(msg.decode('utf-8'))
37     re_msg = input('>>>')
38     sk.send(re_msg.encode('utf-8'))  #给对方发信息
39     if re_msg == 'q':
40         break
41 sk.close()
tcp_socket
 1 #server 服务器
 2 import socket
 3 sk = socket.socket()
 4 sk.bind(('127.0.0.1', 8080))
 5 sk.listen()
 6 
 7 conn, addr = sk.accept()
 8 filename = conn.recv(1024)
 9 print('>>>filename', filename)
10 with open(filename, 'wb')as f:
11     content = conn.recv(4096)
12     f.write(content)
13 conn.close()
14 sk.close()
15 
16 #client  顾客
17 import socket
18 sk = socket.socket()
19 sk.connect(('127.0.0.1', 8080))
20 
21 sk.send('9.总结.py'.encode('utf-8'))
22 with open(r'E:\飞秋\老师笔记\day30\9.总结.py','rb')as f:
23     content = f.read()
24     print(len(content))
25     sk.send(content)
26 sk.close()
tcp_socket上传文件

基于udp协议的socket

 1 #server 服务器   
 2 import socket
 3 sk = socket.socket(type=socket.SOCK_DGRAM)  #表明类型
 4 sk.bind(('127.0.0.1', 8888))
 5 
 6 while True:
 7     msg, addr = sk.recvfrom(1024)     #接收哪里的from
 8     print(addr, msg.decode('utf-8'))
 9     se_msg = input('>>>')     
10     sk.sendto(se_msg.encode('utf-8'), addr)   #发到哪里  to 
11 sk.close()
12 
13 #client
14 import socket
15 sk = socket.socket(type=socket.SOCK_DGRAM)
16 
17 while True:
18     msg_send = input('>>>')
19     sk.sendto(msg_send.encode('utf-8'), ('127.0.0.1', 8888))
20     msg, addr = sk.recvfrom(1024)
21     print(msg.decode('utf-8'), addr)
22 sk.close()
23 #因为udp没有连接,所以不知道对方的ip,所以要先接收到才可以回
udp_socket

 

posted @ 2018-09-13 17:07  .why  阅读(318)  评论(0)    收藏  举报
Live2D