无法绑定到多播地址(Windows)

时间:2011-05-26 15:00:55

标签: windows sockets multicast

我正在尝试编写一个使用Windows套接字侦听多个组播组的应用程序。

我遇到的问题是,当我去绑定套接字时,如果我尝试绑定到多播组地址和端口,则会失败并使用WSAEADDRNOTAVAIL。如果我改为绑定到INADDR_ANY和端口,那么我仍然可以接收发往同一端口的其他无关流量。

当我在Linux中实现相同的功能时,我没有遇到任何绑定到多播地址的问题(实际上,我看到它推荐了几个地方以避免为端口获取不相关的流量)。

这不适用于Windows套接字吗?我假设我可以通过使用WSARecvFrom并查看标题来自行过滤流量,但如果存在,我宁愿使用简单的解决方案。

此外,它在Windows Server 2008上运行。

1 个答案:

答案 0 :(得分:2)

虽然bind()的doc没有说这个不受支持,但它在备注中说:

  

对于多播操作,   首选方法是调用绑定   将套接字与a关联的函数   本地IP地址然后加入   组播组....

也许这个计划会产生更好的结果?