Python UDP包出现在wireshark中,但程序不接收

Python UDP包出现在wireshark中,但程序不接收,python,udp,wireshark,Python,Udp,Wireshark,我正在尝试用我的计算机读取FPGA发送的UDP包。他们被派去了 端口21844和IP 192.168.1.2(这是我的计算机的IP)。我可以在wireshark中看到包,它们没有错误。然而,当我运行这个小python脚本时,它只接收到所有包的一小部分,这也取决于wireshark是否正在运行 import socket import sys HOST, PORT = "192.168.1.2", 21844 sock = socket.socket(socket.AF_INET, socke

我正在尝试用我的计算机读取FPGA发送的UDP包。他们被派去了 端口21844和IP 192.168.1.2(这是我的计算机的IP)。我可以在wireshark中看到包,它们没有错误。然而,当我运行这个小python脚本时,它只接收到所有包的一小部分,这也取决于wireshark是否正在运行

import socket
import sys


HOST, PORT = "192.168.1.2", 21844
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind((HOST,PORT)) 
received ,address= sock.recvfrom(2048)
print address
我将windows 7与Norton Internet Security一起使用,在这里,我允许FPGA IP和python的防火墙中的所有流量。Windows XP计算机上的同一程序也不接收任何内容


谢谢你的帮助

操作系统的TCP/IP堆栈不会永久保存这些数据包。您的脚本看起来很像,这在很大程度上取决于它何时运行。在循环中尝试
recvfrom
,并在后台运行脚本。然后,开始从FPGA发送数据包


为了方便起见,请从Python的stdlib中探索
SocketServer
模块。

好的,我发现了问题:FPGA中的UDP校验和计算错误。Wireshark显示每个包,但默认情况下它不会检查校验和是否正确。当我将校验和设置为
0x0000
时,包以python的形式到达!再次感谢你的帮助

当你说“XP计算机也没有收到任何东西”时,你真的是指按照Windows7机器的说法,数据包中的一小部分吗?此外,数据包的传送速度有多快?不,XP计算机根本没有任何信息。。来自FPGA的数据包以每秒一个左右的频率到达,数据长度为1196字节。感谢您的回答,Eli!实际上,我也尝试在循环中使用它,比如:当1:received,address=sock.recvfrom(2048)print收到时,address在本例中只捕获了非常少量的包。。。