我已经设置了UDP服务器,并在localhost接口和物理以太网上加入了一个组播组,以便能够从127.0.0.1和192.168.78接收多播。*(示例)。
根据文档,组播消息的目标接口是通过源地址确定的,我有一个客户端发送消息,但有时选择localhost接口,有时选择以太网接口。即在前一种情况下,源地址是127.0.0.1。
问题:如何强制数据报套接字始终将多播消息发送到物理接口? (即源地址为192.168.78.xx)
答案 0 :(得分:1)
根据文档,多播消息的目标接口是通过源地址
确定的
没有。它由通过查找IP路由表给出的多播地址路由确定,除非您使用IP_MULTICAST_IF
选项,该选项设置传出多播的默认接口。
我有一个客户端发送消息,但有时会选择localhost接口,有时候是以太网接口。即在前一种情况下,源地址是127.0.0.1。
问题:如何强制数据报套接字始终将多播消息发送到物理接口? (即源地址为192.168.78.xx)
使用上面提到的选项。
来源:Stevens 等, Unix网络编程,第3版,§21.6。