Boost 多播绑定接口问题

Boost 多播绑定接口问题,boost,multicast,Boost,Multicast,我有一个问题,我很困惑。 例如,如果我想加入一个多播组239.255.0.1:30001来接收数据。我应该绑定到哪个接口?我看到一些人说绑定到多播地址239.255.0.1:30001。绑定到本地计算机接口(如eth0/eth1)如何?这取决于您针对的操作系统 对于Windows,绑定到本地计算机界面 对于Linux和Mac/iOS(可能还有BSD样式套接字的其他用户),绑定到多播地址 对于在Windows和Linux上都能正常工作的代码,请绑定到INADDR_ANY(0)。请注意,您可能需要

我有一个问题,我很困惑。
例如,如果我想加入一个多播组239.255.0.1:30001来接收数据。我应该绑定到哪个接口?我看到一些人说绑定到多播地址239.255.0.1:30001。绑定到本地计算机接口(如eth0/eth1)如何?

这取决于您针对的操作系统

  • 对于Windows,绑定到本地计算机界面
  • 对于Linux和Mac/iOS(可能还有BSD样式套接字的其他用户),绑定到多播地址
  • 对于在Windows和Linux上都能正常工作的代码,请绑定到INADDR_ANY(0)。请注意,您可能需要过滤掉不需要的流量。而且,这在Mac/iOS上也不起作用

谢谢。因为我使用的是Linux,我想知道为什么要绑定到多播地址而不是本地机器接口?@MichaelD我不知道API为什么会以这种方式运行。您确实需要在别处使用接口地址-对于IP_添加_成员身份(以及可选的IP_多播_IF)sockopts。请参阅: