gpt4 book ai didi

java - 如果套接字必须已经绑定(bind)到它,为什么 DatagramSocketImpl joinGroup 方法采用 NetworkInterface?

转载 作者:行者123 更新时间:2023-11-30 09:40:20 26 4
gpt4 key购买 nike

只是好奇。那是多余的吗?您还没有绑定(bind)到要使用的网络吗?也许这就是当您绑定(bind)到 0.0.0.0 并且现在只想从接口(interface) X 监听多播数据包时的情况?

最佳答案

  1. 如果您绑定(bind)到 INADDR_ANY(这是正常情况),则加入组 IGMP 消息会通过路由表显示提供到多播地址的最短路线的任何 NIC 接口(interface)发出。在多宿主主机中,您可能需要它通过所有 NIC 出去,因此您循环遍历它们,依次通过每个 NIC 加入。

  2. 如果您绑定(bind)到特定的 NIC,则在加入时指定网络接口(interface)没有意义。

  3. 如果您绑定(bind)到多播地址本身,那么该套接字只能接收多播,而不能接收单播 UDP,如果您想通过所有接口(interface)加入,您可能需要像 (1) 中那样循环。

关于java - 如果套接字必须已经绑定(bind)到它,为什么 DatagramSocketImpl joinGroup 方法采用 NetworkInterface?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9469036/

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