小白学python---------------网络编程之udp协议没有粘包问题

udp协议没有粘包问题(udp协议即数据报协议)

服务端

import socket

# udp协议只需要IP+端口就可以发送数据了,回复也一样
# 对于udp没有发送空数据一说,什么都不输入直接发送,其实是把报头发送出去了,自带报头发送出去
# udp协议稳定传输的数据为512个字节

server = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)#udp协议即数据报协议

server.bind(('127.0.0.1',8080))

#udp协议不需要建立连接所以不需要listen和accept

while True:
    msg,addr = server.recvfrom(1024)

    print(addr)

    #因为没有连接,所以发送消息时必须设置好接收方的IP和PORT
    server.sendto(msg.upper(),addr)


server.close()
客户端

import socket

#  udp协议没有粘包问题

server = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

ip_port=('127.0.0.1',8080)

while True:
    msg = input('>>>').strip()

    server.sendto(msg.encode('utf-8'),ip_port)

    back_msg,addr = server.recvfrom(1024)
    print(back_msg.decode('utf-8'),addr)

server.close()

猜你喜欢

转载自blog.csdn.net/qq_42721964/article/details/82348597