我的印象是recvfrom()給你下一個IP包的端口和它正在監聽的端口,如果它不在監聽包錯過。我們遇到了一個問題,即問題可能是數據包排隊等待recvfrom(),因此即使recvfrom()未處於有效偵聽狀態,它仍在偵聽並捕獲所有數據包。python的recvfrom()隊列包?
我無法在此找到明確的文檔。有人確實知道recvfrom()的特性是在不被調用時對數據包進行排隊嗎?
代碼示例:
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
mcast_g = socket.inet_aton(group)
mreq = struct.pack('4sL', mcast_g, socket.INADDR_ANY)
s.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq)
s.bind(('', port))
while True:
data, sender = s.recvfrom(1500)
# Do stuff
# Are packets being queued up here?
好吧,你如何描述它對我來說很有意義。謝謝! – gaucho