有时我必须向特定的IP发送消息,有时我必须将消息广播到我的网络中的所有IP。在另一端,我必须区分广播和普通广播,但recvfrom()
只返回消息来自的地址;
它们之间没有区别。任何人都可以帮助我区分它们吗?
UDP是协议。
答案 0 :(得分:5)
我不认为使用Python的socket
模块是可能的。 UDP是一种非常简约的协议,区分广播和非广播UDP数据包的唯一方法是查看目标地址。但是,您无法使用BSD套接字API检查数据包的该部分(如果我记得正确),socket
模块仅公开BSD套接字API。您最好的选择可能是使用消息的第一个字节来表示它是广播还是单播消息。