0

我正在编写代码以通过 java 中的套接字工作。我创建了一个多播组,任何人都可以在 LAN 上加入。但是局域网有很多不同的网络,由路由器操作,代码创建的组播组在不同的网络中会有所不同,如果一个人将某物组播到网络A中的组播组,它只会被加入的人接收仅针对该网络中的组,而不是针对不同网络中的所有人。

例如:

比方说,多播组是 224.0.0.1。LAN有2个不同的网络。

网络 A = 172.22.28.0/255.255.254.0

网络 B = 172.22.30.0/255.255.254.0

那么在两个不同的网络中就会有两个不同的组播组,地址与224.0.0.1相同。

我的问题是如何通过这两个差异进行多播。局域网上的网络通过java?

在寻找解决方案的过程中,我遇到了IP ENCAPSULATION的概念,我可以在其中为数据包添加一个外部 IP 地址,以便它可以通过不同的网络。我认为这应该可以工作,因为我可以在数据包发送中封装其他网络的地址。

有人能告诉我这个(IP ENCAPSULATION)如何在java中实现吗?如果没有,是否有任何其他可能的方法可以应用。

任何帮助表示赞赏。

4

1 回答 1

0

首先,224.0.0.1是一个称为 的保留组all-systems.mcast.net,即所有可访问的联网机器,请参阅wikipedia

然后,您要查找的内容是IGMP多播路由,即必须将路径中的交换机配置为专门转发多播,并且路由器还需要知道在连接的网络之间转发多播流量。

于 2011-08-22T14:36:17.013 回答