想象有 processA
和 processes B
and C
,我希望它们都将消息多播到X.Y.Z.W
port上的组P
,并A
同时监听该组上的这些消息。是否可以A
接收来自B
和C
不接收自己的消息?换句话说,如果我禁用环回(为了A
不接收它正在多播的消息)它是否仍会接收来自它的消息B
,C
或者这是否会有效地导致它甚至不再监听X.Y.Z.W
端口P
?
问问题
2651 次
2 回答
1
是的,它会像你描述的那样工作。我们在 RSP[1] 中以与任意可靠多播完全相同的方式使用它。
[1] http://www.equalizergraphics.com/documents/design/multicast.html#RSP
于 2012-11-18T12:35:39.883 回答
0
从我从文档中可以看出,该IP_MULTICAST_LOOP
选项在主机级别运行,而不是单个套接字。因此,如果禁用它,发送主机上的任何进程都不会收到多播数据包;如果启用它,发送主机上的所有进程都会收到它。
A 可以做的是检查它收到的数据包的源 IP 和端口。如果它们匹配其发送套接字的本地 IP 和端口,它应该忽略它们。
于 2012-11-17T07:57:57.863 回答