我正在开发一个项目,将一些数据从服务器发送到客户端,如名称,年龄和国家/地区,作为从服务器发送给客户端的消息。
我使用python和socket lib创建了这段代码,但我想知道有没有更好的方法以相同的顺序获取消息?
例如我发送“第一条消息”,然后发送“第二条消息”,然后发送“第三条消息”,所以输出应该是相同的顺序:“第一条消息”,然后是“第二条消息”,然后是“第三条消息”
这是我的代码:
发送
import socket
UDP_IP = "127.0.0.1"
UDP_PORT = 5005
MESSAGE = "Hello, World!"
MESSAGE2 = "Hello, world2"
MESSAGE3 = "Hello, world3"
print "UDP target IP:", UDP_IP
print "UDP target port:", UDP_PORT
print "message:", MESSAGE
sock = socket.socket(socket.AF_INET, # Internet
socket.SOCK_DGRAM) # UDP
sock.sendto(MESSAGE.encode(), (UDP_IP, UDP_PORT))
sock.sendto(MESSAGE2.encode(), (UDP_IP, UDP_PORT))
sock.sendto(MESSAGE3.encode(), (UDP_IP, UDP_PORT))
接收
import socket
UDP_IP = "127.0.0.1"
UDP_PORT = 5005
sock = socket.socket(socket.AF_INET, # Internet
socket.SOCK_DGRAM) # UDP
sock.bind((UDP_IP, UDP_PORT))
while True:
data, addr = sock.recvfrom(1024) # buffer size is 1024 bytes
print "received message:", data
data, addr = sock.recvfrom(1024) # buffer size is 1024 bytes
print "received message:2", data
data, addr = sock.recvfrom(1024) # buffer size is 1024 bytes
print "received message:3", data
答案 0 :(得分:0)
而不是使用udp,而是使用tcp,它将确保消息按顺序排列