我需要从多宿主计算机发送多播udp。发现在套接字未绑定到某些特定接口的情况下,将使用默认接口(可能意味着任何含义)。我的问题:是否可以指定类似inaddr_any的方式从所有可用接口发送多播udp,还是只能通过枚举所有接口并手动从每个接口进行发送来做到这一点?有这个标准吗?谢谢
您可以通过设置IP_MULTICAST_IF
套接字选项来设置从哪个网络接口发出IPv4组播数据包。传递给setsockopt
的值应该是包含相关接口IP地址的struct in_addr
的地址。
如果要在多个接口上发送多播数据包,则需要多次调用sendto
,并在每个接口之前设置IP_MULTICAST_IF
选项。