我说的是 IPv4。如果不是,主机是否使用 2 个 IP 地址,一个用于多播通信,一个用于“常规”通信?
答案1
不。而且,IP 多播地址有一个特殊范围(例如 239.xxx),作为主机地址是非法的。你只需执行setsockopt
withIP_ADD_MEMBERSHIP
即可。而且,如果你认真考虑一下,更改 IP 意味着所有常规流量都会停止。
你所做的就是表示你希望接口(通过套接字)监听并处理给定多播地址的数据包,此外它的常规接口地址。它比这稍微复杂一点,但也差不多了。
IIRC,如果系统 [host0] 有两个接口(例如 NIC 卡),比如 eth0 和 eth1,并且 eth0 与给定的多播具有半直接连接,并且有一个 host1 通过 eth1 连接到 host0,并且 host1 可以仅有的通过 host0 到达多播,host0 必须订阅多播,不是为自己,而是代表 host1,并在 eth1 上转发数据包。