我正在使用MulticastSocket接收UDP多播数据包。如何确定发送此类数据包的地址?使用提供的方法,我只能确定发件人地址。

当然,我是在创建侦听套接字时设置To-Address的人,但我能真正确定吗?广播包怎么样?那些以某种方式结束的数据包怎么样? 我真的想区分数据包是否真的是多播的。

谢谢!

更新:目前看来刚刚发送到该端口的单播数据包也最终出现在组播套接字中的receive():(绑定到设备也没有给我带来更好的结果

有帮助吗?

解决方案

我对细节有点模糊,但是组播数据包将被发送到你订阅的ip / port组合(这个信息将在数据包中,某处),假设你设法有一个清晰的路径了解多播的中间路由器。如果你想确保multicastsocket从正确的网络接口接收,那么有很多功能可以将它绑定到特定的接口。

我认为您无法知道数据包是否“真的”多播,即有人总是可以伪造一个,因为内置的没有真正的安全性。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top