2008-11-07 61 views
2

我正在使用MulticastSocket接收UDP多播数据包。我怎样才能确定这个数据包发送到哪个地址?通过提供的方法,我只能确定发件人地址。Java:使用MulticastSocket确定接收地址

当然,我是在创建侦听套接字时设置To-Address的人,但我真的可以确定吗?广播数据包呢?那么有关数据包最终会在这里发生什么呢? 我真的想分辨这个数据包是否真的是多播的。

谢谢!

更新:目前好像只是发送到该端口的单播数据包也结束了在多播套接字接收():(绑定到设备也没有给我更好的结果

+0

我很困惑。在设置MulticastSocket的时候不要将它绑定到特定的地址?这不是任何人可以用来发送给大家的地址吗?即使数据包本身不可用,您也应该已拥有该信息。 – 2008-11-07 13:32:42

+0

是的,但看到我的更新关于单播包:) – guruz 2008-11-07 13:35:34

回答

2

我就有点模糊但是一个组播数据包将被发送到您订阅的IP /端口组合(假设您设法了解组播的中间路由器的清晰路径),并且此信息将位于数据包的某个位置。确保组播包正在从正确的网络接口接收,有一堆功能将它绑定到一个特定的接口。

我不认为你有任何方式知道数据包w作为“真正的”多播,即有人可以永远伪造一个,因为没有内置真正的安全。