繁体   English   中英

接收非标准UDP广播python

[英]Receive non-standard UDP broadcast python

我很难接收Python中的UDP广播。 通过以太网连接到PC的设备在特定的地址和端口上广播消息。 我已经尝试了许多在线发现的多播python示例,但是我永远都收不到数据。 使用wireshark,我可以看到UDP广播正在到达PC。

Wireshark捕获

我已经在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])

但是,我已经尝试了其他多播示例,例如Python中的“多播”,但仍无法接收任何内容!

您没有收到广播,因为您没有使用广播地址。

可以使用:

s.bind(('',4876))

或您IP的正确广播地址。

Ok找到了答案,而只限于这种情况,并踢自己忽略了它。

通过以太网连接的设备正在等待分配IP地址! Wireshark必须捕获比python低的网络流量。

无论如何,手动为设备分配了一个IP地址,现在它可以工作了。 宽慰。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM