2017-06-16 67 views
1

我想要开发使用UDP协议发送数据包的客户端在Java Web应用程序发送通过互联网多投包在Java中

我需要直接向每个客户端发送数据包。

的Java提供了一个名为MulticastSocket时类,它扩展UDP。这可以通过网络将数据包发送给多个客户端。

但它只发生在本地网络而不是“互联网”。

有什么办法通过互联网发送组播数据包吗? 如果有可能解释它并解释我可以如何在Java中实现它。

我发现了一些像IGMP协议......但我认为它是在MulticastSocket中开发的。

+0

我确定需要在客户端添加防火墙异常。也许你需要一个多播路由器来发送多播数据包。 – TBridges

+0

@Tim,但我永远无法理解我如何通过互联网发送多播数据包。由于多播组ip必须在D类中,我认为这个IP clasa不能从Internet访问! –

+0

您是否介意在www.iana.org上分享您的解决方案?谢谢 – ehe888

回答

0

当发送多播数据包,如果你希望他们穿过一个或多个路由器需要设置输出数据包的TTL为至少与你希望通过的路由器的数目一样大。您可以通过MulticastSocketsetTimeToLive()方法进行设置。

IGMP消息由多播接收器发送,让路由器知道向何处转发多播通信。当您通过joinGroup方法之一加入多播组时,您无需显式发送数据包,因为操作系统会自动执行该数据包。

然而,通过公共互联网发送组播的主要问题是,大多数路由器没有配置为允许多播流量通过他们。默认情况下,它们将丢弃IGMP数据包而不是转发它们。

有一个实验性的互联网骨干网组播称为MBONE,但我不相信这是在使用了。

因此,不能,无论语言如何,您都无法通过公共Internet发送多播。

+0

嗨,兄弟谢谢你的回答。我在www.iana.org上找到了我的解决方案,谢谢! –