如何组播发送到所有网络接口?

时间:2012-05-22 13:19:23

标签: interface udp send multicast

假设我有N个支持多播的网络接口。我计划绑定N个UDP套接字,每个接口一个,并发送到相同的多播ip /端口。是否有比这更直接/有效的方法?

接收时,我知道您可以使用同一个套接字监听多个接口,但是使用单个套接字无法发送,或者可以吗?

1 个答案:

答案 0 :(得分:1)

另一个方法是使用IP_MULTICAST_IF来更改用于在套接字上发送多播的接口。使用这种方法,您可以在每次发送之前调用发送N次并更改发送接口。这样可以减少正在使用的套接字数量,但不能减少发送呼叫的数量。

组播发送行为与网络应用程序编程器内联并引导the Robustness Principle/Postel's law

  

在你所做的事情上要保守,在你接受别人的事情上保持自由(通常被改写为"对你发送的内容要保守,在你所接受的内容中保持自由,并且#34;)。

我的意思是套接字API和行为使得从单个套接字上的多个接口(自由接收)很容易接收,但不允许发送多播和广播所有接口从单个套接字,从而迫使程序员非常有意识地编写应用程序以发送多个接口(保守发送)