小编Art*_*rts的帖子

如何在多宿主系统上使用多播(Java,Linux)

这是在Java中,但如果需要,我总是可以通过JNI恢复到C.

我有一个带有两个NIC的系统,每个NIC都连接到一个不同的子网.我想使用多播(特别是SDP)来发现两个网络上的其他主机.

一个网络很简单:在指定端口上创建MulticastSocket,joinGroup它,我得到数据包.简单.

两个网络:到目前为止不可能.我试过了:

1)创建两个套接字,绑定到同一个端口,并使用setInterface()或setNetworkInterface()来"连接"到正确的接口.即使在setReuseAddress()的各种排列之后也没有运气.

2)创建单个套接字,然后尝试连接两次,两次调用joinGroup(SocketAddress mcastaddr,NetworkInterface netIf).第二次加入呼叫失败.

Java以外的解决方案会很棒.特别是,如果我可以设置有效"组合"两个接口的多播路由(我可以查看每个数据包以确定哪个网络).正如我之前提到的,任何数量的本机代码都可以在这种环境中使用(Linux,使用Apache"luni"java基础结构).

谢谢!

java multicast multihomed

4
推荐指数
1
解决办法
6393
查看次数

标签 统计

java ×1

multicast ×1

multihomed ×1