在Java中,socket通过internet发送多播数据包
我想开发一个Web应用程序,它使用UDP协议向JAVA中的客户端发送数据包
我需要直接向每个客户端发送数据包
Java提供了一个名为MulticastSocket的类,该类扩展了UDP。这可以通过网络向多个客户端发送数据包
但它只是发生在本地网络上,而不是在“互联网”上
有没有办法通过互联网发送多播数据包? 如果可能的话,解释一下,并解释一下我如何用Java实现它
我发现了一些协议,比如IGMP。。。但我认为它是在多播socket中发展起来的
# 1 楼答案
在发送多播数据包时,如果您希望它们通过一个或多个路由器,则需要将传出数据包的TTL设置为至少与您希望通过的路由器数量相同。您可以通过
MulticastSocket
的setTimeToLive()
方法进行设置IGMP消息由多播接收器发送,让路由器知道将多播流量转发到何处。您不需要显式发送数据包,因为当您通过
joinGroup
方法之一加入多播组时,操作系统会自动发送数据包然而,通过公共互联网发送多播的主要问题是,大多数路由器没有配置为允许多播流量通过它们。默认情况下,它们将丢弃IGMP数据包,而不是转发它们
有一个实验性的互联网多播主干网叫做MBONE,但是我认为它已经不再使用了
所以不,你不能在公共互联网上发送多播,不管使用哪种语言