day 32 基于udp协议的套接字通信 udp协议通讯循环原理分析 udp协议没有粘包问题

基于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协议会有并发的效果

猜你喜欢

转载自www.cnblogs.com/wangmiaolu/p/9291976.html