服务端:
import socket server=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) server.bind(('127.0.0.1',8080)) while True: res,client_addr=server.recvfrom(1024) # print(data) server.sendto(res.upper(),client_addr)
客户端:
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))
res,server_addr=client.recvfrom(1024)
print(res)
udp协议不会粘包:
服务端:
import socket server=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) server.bind(('127.0.0.1',8080)) res1,client_addr=server.recvfrom(1024) #b'hello' print(res1) res2,client_addr=server.recvfrom(1024) #b'wolrd' print(res2) res3,client_addr=server.recvfrom(1024) #b'oldboy123456' print(res3)
客户端:
import socket client=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) client.sendto('hello'.encode('utf-8'),('127.0.0.1',8080)) client.sendto('wolrd'.encode('utf-8'),('127.0.0.1',8080)) client.sendto('oldboy123456'.encode('utf-8'),('127.0.0.1',8080))
打印结果:
b'hello' b'wolrd' b'oldboy123456'
udp是无链接的,先启动哪一端都不会报错