我无法接收在Python程序从FPGA发送的UDP包。 我检查了类似的问题,也做了以下内容:
- 经过Wireshark才能看到的UDP数据包
- 禁用Windows防火墙在PC
- 二手sock.bind(),因为它的UDP数据包
- 手动设置的以太网帧,因为FPGA不支持ARP目的MAC地址
- 设置目的IP广播10.10.255.255进行测试,没有收到的数据包
- 从发送方为0x0000设置数据包的UDP校验
这里的蟒蛇接收器的代码:
import socket
import sys
UDP_IP = "10.10.10.87"
UDP_PORT = 4660
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind((UDP_IP, UDP_PORT))
print("Socket: "+str(sock.getsockname()))
while True:
data, addr = sock.recvfrom(1024) # buffer size is 1024 bytes
print(data)
print(addr)
sys.stdout.flush()
当针对发送到10.10.10.87:4660(从另一台电脑的网络10.10.10中)另一个python脚本测试接收器脚本工作正常。 我甚至一直在努力,重建UDP pcket逐字节从我知道接收OK包在FPGA(差异是源IP,端口和MAC校验和(禁用),识别)。
下面是输出从Wireshark的两个包:
Wireshark的UDP数据包 (也被接收到的OK左侧Python的UDP包,Xilinx的FPGA数据包不会被蟒蛇右侧收到)
我不知道什么尝试。 任何帮助,将不胜感激。