首页 文章

接收非标准的UDP广播python

提问于
浏览
0

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

Wireshark capture

我尝试过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,但我还没有能够收到任何内容!

2 回答

  • 0

    好的找到答案,而不是孤立于这种情况,并踢我自己忽略它 .

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

    无论如何,手动为设备分配了一个IP地址,现在它正在工作 . 很轻松 .

  • 0

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

    使用:

    s.bind(('',4876))
    

    或者ip的正确广播地址 .

相关问题