有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在Java中,socket通过internet发送多播数据包

我想开发一个Web应用程序,它使用UDP协议向JAVA中的客户端发送数据包

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

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

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

有没有办法通过互联网发送多播数据包? 如果可能的话,解释一下,并解释一下我如何用Java实现它

我发现了一些协议,比如IGMP。。。但我认为它是在多播socket中发展起来的


共 (1) 个答案

  1. # 1 楼答案

    在发送多播数据包时,如果您希望它们通过一个或多个路由器,则需要将传出数据包的TTL设置为至少与您希望通过的路由器数量相同。您可以通过MulticastSocketsetTimeToLive()方法进行设置

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

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

    有一个实验性的互联网多播主干网叫做MBONE,但是我认为它已经不再使用了

    所以不,你不能在公共互联网上发送多播,不管使用哪种语言