关于UDP接收器。
考虑下面的示例代码,我是否必须考虑在recfrom
方法中可能会收到多个UDP消息?
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind(("", 99))
while 1:
data, addr = s.recvfrom(1024)
someFunction(data)
答案 0 :(得分:0)
否定标题中的问题。
是的!对问题中的问题。 UDP数据包经常到达两次(并且无序)。
维基百科说:
UDP使用简单的传输模型,协议最少 机制。它没有握手对话,因此暴露任何 底层网络协议对用户的不可靠性 程序。由于这通常是IP不可靠的媒体,因此没有 保证交货,订购或重复保护。 UDP提供 用于数据完整性的校验和以及用于寻址的端口号 数据报源和目的地的不同功能。