Python丢弃WireShark看到的UDP数据包

时间:2019-02-11 16:25:39

标签: python udp embedded bare-metal

我正在尝试从裸机嵌入式设备向运行python的脚本发送UDP数据包。 我在WireShark中看到该数据包,并确认一切正确。 但是,Python脚本看不到该数据包。

我已经通过从另一个python脚本发送UDP数据包测试了python代码。接收到的python脚本会在那个时候接收到它。

我在防火墙中看到该数据包。它说数据包被允许并发送到python。我在防火墙中创建了一条规则,以允许来自此设备的流量。我还尝试过禁用防火墙。

下面是我的python脚本,正在监听UDP数据包

import socket

UDP_PORT = 5005

sock = socket.socket(socket.AF_INET, # Internet
                     socket.SOCK_DGRAM) # UDP
sock.bind(('', UDP_PORT))

while True:
  data, addr = sock.recvfrom(1024) # buffer size is 1024 bytes
  print "received message:", data
  print "received from:", addr

Python为什么会丢弃数据包?

Netstat显示它已收到UDP数据包,没有任何错误:

Netstat收到数据包之前

  

netstat -s -n -p UDP

     

IPv4的UDP统计信息

     

收到的数据报= 5982014

     

无端口= 79096

     

接收错误= 829

     

发送的数据报= 1641811

收到数据包后的Netstat

  

netstat -s -n -p UDP

     

IPv4的UDP统计信息

     

收到的数据报= 5982130

     

无端口= 79100

     

接收错误= 829

     

已发送的数据报= 1641932

0 个答案:

没有答案