2

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

当然,我是在创建侦听套接字时设置 To-Address 的人,但我真的可以确定吗?广播包呢?以某种方式最终到达这里的数据包呢?我真的很想区分数据包是否真的是多播的。

谢谢!

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

4

1 回答 1

2

我对细节有点模糊,但是一个多播数据包将被发送到您订阅的 ip/port 组合(并且此信息将在数据包中的某个地方),假设您设法拥有一条清晰的中间路由器路径了解多播。如果你想确保多播套接字从正确的网络接口接收,有一堆函数可以将它绑定到特定的接口。

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

于 2008-11-07T12:22:55.560 回答