【发布时间】:2016-08-16 13:18:20
【问题描述】:
我很难在 Python 中接收 UDP 广播。通过以太网连接到 PC 的设备在特定地址和端口上广播消息。我尝试了许多在线找到的多播 python 示例,但我永远无法接收到数据。使用wireshark我可以看到UDP广播正在到达PC。
我已经在 OSX 和 Linux 上尝试过,但都不起作用。我只能假设没有收到消息,因为设备使用非标准 UDP 结构,即没有校验和验证等
关于如何接收这些 UDP 广播的任何想法?
谢谢!
编辑:以最简单的形式,当前代码是:
from socket import *
s=socket(AF_INET, SOCK_DGRAM)
s.bind(('239.255.60.60',4876))
m=s.recvfrom(1024)
print (m[0])
但是,我尝试了其他多播示例,例如 Multicast in Python,但还没有收到任何东西!
【问题讨论】:
-
请添加一个最小、完整且可验证的示例。 stackoverflow.com/help/mcve
-
通常情况下,您的操作系统网络堆栈会为您捕获 IP 数据包;如果您想使用原始 IP,您应该向我们提供更多详细信息(什么操作系统,什么版本的 Python,请显示精细代码)。
-
我在 Ubuntu 上使用 Python3,我相信我将不得不使用原始套接字并从头开始......
标签: python udp broadcast multicast