2010-05-17 68 views
2

有时我必须发送消息到特定的IP,有时我必须将消息广播到我的网络中的所有IP。另一方面,我必须区分广播和普通广播,但recvfrom()只是返回消息来自的地址; 他们之间没有区别。任何人都可以帮我区分它们吗?如何识别广播的消息?

UDP是协议。

回答

5

我不认为Python的socket模块是可能的。 UDP是一种非常简约的协议,区分广播和非广播UDP数据包的唯一方法是查看目标地址。但是,您无法使用BSD套接字API检查包的这部分(如果我没有记错的话),并且socket模块仅公开BSD套接字API。您最好的选择可能是使用消息的第一个字节来表示它是广播消息还是单播消息。