有时我必须向特定 IP 发送消息,有时我必须将消息广播到网络中的所有 IP。在另一端,我必须区分广播和普通广播,但是 recvfrom()
只是返回消息来自的地址;
它们之间没有区别。谁能帮我区分一下吗?
UDP 是协议(protocol)。
最佳答案
我认为 Python 的 socket
模块不可能做到这一点。 UDP 是一种非常简约的协议(protocol),区分广播和非广播 UDP 数据包的唯一方法是查看目标地址。但是,您无法使用 BSD 套接字 API 检查数据包的该部分(如果我没记错的话),并且 socket
模块仅公开 BSD 套接字 API。最好的选择可能是使用消息的第一个字节来表示它是广播消息还是单播消息。
关于python - 如何识别广播消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2848098/