我看过这个帖子,但我认为它并没有真正解决我的问题: UDP broadcasting in netty 4.x.x
我的问题是,是否可以同时向多个不同的地址发送广播UDP数据包?在TCP中,我能够在通道组上调用写入,但在UDP中,所有内容都通过单个通道流动*(*如果我在这里也错了,请纠正我)。
由于单一频道,我必须将每个数据包与其自己的收件人分开编写。现在我只是通过我的每个地址的循环并发送一个数据包...它似乎效率低下。
有更好的方法吗?
答案 0 :(得分:1)
IP multicast可能就是你要找的东西。您不需要任何特殊语言框架支持即可使用它。您的对等方加入了多播“组”,您将数据报发送给该组,所有对等方都将收到它们。此上下文中的“组”只是来自multicast ranges之一的IP地址。
这通常可以在单个子网上可靠地工作,并且如果您控制组织中将子网连接在一起的路由器和防火墙,则可以使其正常工作。通常会发现防火墙默认阻止组播,并且路由器必须配置为在子网之间路由组播流量。