首页 文章

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

提问于
浏览
3

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

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

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

这是不适用于Windows套接字?我假设我可以通过使用WSARecvFrom并在 Headers 上偷看来自己过滤流量,但如果存在,我宁愿一个简单的解决方案 .

此外,这是在Windows Server 2008上运行 .

1 回答

  • 2

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

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

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

相关问题