基于udp协议的套接字通信
客户端
import socket client=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) while True: msg=input('>>:').strip() client.sendto(msg.encode('utf-8'),('127.0.0.1',8080)) #sendto指定发给谁 data,server_addr=client.recvfrom(1024) #元祖的解压 print(data) client.close() #udp也不用 connect(请求建立连接)
服务端
import socket server=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)#数据报协议->udp协议 拿到套接字对象 没有粘包问题 server.bind(('127.0.0.1',8080)) while True: data,client_addr=server.recvfrom(1024) print('=====>',data,client_addr) server.sendto(data.upper(),client_addr) server.close() #udp协议没有连接 不用listen 没有accept #为什么udp发空不卡 为什么收空 #udp称之为数据报协议 每个协议钱都带报头 #刚刚输入空,并不是空数据,是带报头出去的,但tcp还没添加加报头 就是真的是空数据了
基于tcp协议不会有并发的效果,但是基于udp协议会有并发的效果