python - Python 丢弃 WireShark 看到的 UDP 数据包
问题描述
我正在尝试将 UDP 数据包从裸机嵌入式设备发送到运行 python 的脚本。我在 WireShark 中看到了这个数据包,并确认一切都是正确的。但是,Python 脚本看不到数据包。
我已经通过从另一个 python 脚本发送 UDP 数据包来测试 python 代码。接收 python 脚本确实在此时接收它。
我在防火墙中看到了数据包。它说数据包被允许并发送到python。我在防火墙中创建了一条规则以允许来自该设备的流量。我也试过禁用防火墙。
下面是我侦听 UDP 数据包的 python 脚本
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
解决方案
推荐阅读
- go - 如何为多个环境和突变的组合生成配置
- python - Django 在 Django 模板中访问列表元素的属性
- android - 在 Flutter 中使用 android 10 活动缩放过渡
- microsoft-graph-api - 对于我的 Teams 应用在 App Studio 中收到的权限,我应该使用什么 API?
- java - 如何防止自定义视图覆盖自身?
- linux - 从命令行执行 Java Mission Control
- python - 我是 python 新手,我自己尝试将其作为个人项目。AttributeError:“NoneType”对象没有属性“get”
- python - 即使在 `try ... except` 中,asyncio.wait 也会返回异常
- xamarin - 如何在我的 xamarin 表单项目中使用 sqlite-net-pcl 设置外键
- opencv - 从 haarcascade 正面训练