Java:使用MulticastSocket接收时确定接收地址

时间:2008-11-07 11:20:24

标签: java udp multicast multicastsocket

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

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

谢谢!

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

1 个答案:

答案 0 :(得分:2)

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

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