【发布时间】:2020-04-14 03:31:46
【问题描述】:
我需要从多宿主计算机发送多播 udp。发现如果套接字未绑定到某个特定接口,将使用默认接口(无论它可能意味着什么)。我的问题:是否可以指定诸如 inaddr_any 之类的东西来从所有可用接口发送多播 udp,还是只能通过枚举所有接口并从每个接口手动发送来做到这一点?有标准吗? 谢谢
【问题讨论】:
我需要从多宿主计算机发送多播 udp。发现如果套接字未绑定到某个特定接口,将使用默认接口(无论它可能意味着什么)。我的问题:是否可以指定诸如 inaddr_any 之类的东西来从所有可用接口发送多播 udp,还是只能通过枚举所有接口并从每个接口手动发送来做到这一点?有标准吗? 谢谢
【问题讨论】:
您可以通过设置IP_MULTICAST_IF 套接字选项来设置 IPv4 多播数据包从哪个网络接口离开。传递给setsockopt 的值应该是struct in_addr 的地址,其中包含相关接口的IP 地址。
如果要在多个接口上发送多播数据包,则需要多次调用sendto,并在每个接口之前设置IP_MULTICAST_IF 选项。
【讨论】: