我正在使用Winsock2开发我的应用程序 . 就我而言,源设备将通过同一端口向目标设备发送单播和多播UDP数据报 . 在接收端,我创建了2个套接字,一个用于接收单播数据报(名为socket1),另一个用于接收多播(名为socket2) . Socket2被添加到分配的多播组中 . 问题是,由于2个套接字绑定到同一个端口,socket2将接收应该由socket1接收的单播数据报 .

我尝试将socket2绑定到多播IP地址,而socket1仍然绑定到本地IP地址,但socket2的绑定操作失败 . 我在一些帖子中看到他们说在Windows上不支持绑定到多播IP地址,但在Linux / BSD上支持 . 这是真的?有没有任何文件或信息告诉这个?

如果Windows不支持绑定到多播IP地址,如何通过使用某些IP级别或套接字级别选项来区分同一端口上的单播和多播数据报?或者我必须制定具体的过滤规则来实现这一目标?

谢谢!

瑞安