为什么java多播接收器无法在Windows XP上接收数据包?

时间:2013-10-02 12:00:33

标签: java windows sockets multicast

我在ip 224.2.2.3和端口8888上有java中的MulticastReceiver和MulticastSender。当我在Windows XP上运行接收器时,我无法接收数据包。我所有的linux接收器都按预期接收数据包。当发件人在Windows上时,情况也很好。

  • 我在XP上关闭了防火墙。
  • 我已将接口绑定到我希望收到数据包的套接字。
  • 我把所有机器放在同一个网络上。

还有什么需要调整吗?

3 个答案:

答案 0 :(得分:4)

如果您的接收器有多个网卡(例如安装了VirtualBox),请降低第二个以太网卡的优先级。

  

开始 - >控制面板 - >网络设置 - >更改适配器设置 - >互联网协议属性 - >高级 - >取消选中自动度量标准并提供高值(例如800)

答案 1 :(得分:1)

将套接字绑定到0.0.0.0,以便它可以通过所有接口接收多播。您可能还必须通过所有接口加入组。

绑定到多播地址本身似乎是一个Linux主义。它在Windows上不起作用。

答案 2 :(得分:0)

我在Windows 2008服务器和接收器上使用多播套接字发件人作为包括PC在内的不同网络设备。但是,从来没有遇到过在Windows 7专业版上使用0.0.0.0的挑战(不确定XP)。我使用226.x.x.x地址。大多数224.x.x.x地址都被IP多播空间注册表占用(不确定XP是否已禁止它们),默认情况下我看到它不适用于多播接收器。您的端口号似乎很好,符合允许的范围。