我有两个程序 .
程序1.该程序为每个网络接口创建一个套接字,设置此套接字的默认多播接口ID并将其绑定到“interface_addr:some_port” . 程序侦听其套接字并处理接收的数据 .
程序1已经过测试,它从网络设备接收多播 .
程序2.该程序为每个网络接口创建一个套接字,并发送多播请求和处理回复 .
程序2已经过测试 - 它接收来自网络设备的多播请求的回复 .
问题是当两个程序在一个主机程序上运行时1没有看到来自程序2的请求,但Wireshark显示来自程序2的数据包 .
操作系统:Windows 7 .
我做错了什么?
2 回答
您不需要多个套接字 . 将单个套接字绑定到INADDR_ANY,然后依次通过每个接口加入该组 .
问题解决了 . 只需要在客户端和服务器上打开选项MULTICAST_LOOP