2014-11-05 46 views
1

場景:Linux的插座&IP_ADD_SOURCE_MEMBERSHIP

過程1創建套接字並將預訂使用IP_ADD_SOURCE_MEMBERSHIP選項的多播組[組:224.0.0.30來源:192.168.0.1設備中:eth0]。將套接字綁定到224.0.0.30:5555。

進程2創建一個套接字並使用IP_ADD_MEMBERSHIP選項[Group:224.0.0.30 Device:eth0]訂閱多播組。將套接字綁定到224.0.0.30:5555。

這兩個進程都在同一個盒子上同時運行。

源IP 172.10.1.1發送一個包含多播目的地224.0.0.30:5555的數據包。

進程1是否會收到組播數據包?或者它會被內核過濾掉嗎?

謝謝。

回答

1

man 7 ip

IP_ADD_SOURCE_MEMBERSHIP (since Linux 2.4.22/2.5.68) Join a multicast group and allow receiving data only from a specified source. ,,,

這意味着,你的第一個程序將不會收到來自源172.10.1.1發送的數據包。 但進一步閱讀:

...此選項可以多次使用,以允許從多個來源接收數據。

,這可能對您有用。