gpt4 book ai didi

java - 多客户端广播中的 MulticastSocket 与 DatagramSocket

转载 作者:搜寻专家 更新时间:2023-11-01 01:37:28 27 4
gpt4 key购买 nike

当一个服务器向多个客户端广播时,哪个实现更快/更有效:MulticastSocket 或 DatagramSocket?

也请大家讨论一下,谢谢!

传递的消息涉及字符串和 float 。

最佳答案

决定因素通常是客户端是否在同一个网络上,或者是否在其他启用多播/链接的网络上。一般来说,多播比任何形式的单播都更有效,但是,多播不可靠,并且不能跨异构网络(如互联网)工作,运营商往往会禁用多播流量。

如果数据需要可靠,那么您确实需要使用 TCP 单播,或者在多播中添加某种形式的 FEC 以赋予数据流表面上的可靠性,如果流量需要通过互联网,那么您必须使用单播 TCP 或 UDP。

精简版:如果您的数据很小,需要可靠,遍历互联网或不经常发送,请使用单播。如果您的数据很大,传送到大量客户端,可以容忍一些丢失,并且只遍历您控制的网络或启用多播的网络,请使用多播。多播实际上是一招小马,(通过同构网络进行不可靠的数据广播)而单播几乎可以做任何事情,但开销更高。

注意:超过一定数量的数据丢失的 TCP 也不再可靠,(导致断开连接)并且单播增加的流量可以降低该限制,因为它成倍增加了数据流. FEC 甚至为大量客户端增加了相对固定的开销,但有一点 FEC 和单播都不再有用,您只需要重新设计网络即可实现可行的解决方案。

关于java - 多客户端广播中的 MulticastSocket 与 DatagramSocket,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8558791/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com