我在 ip 224.2.2.3 和端口 8888 上的 java 中有一个 MulticastReceiver 和 MulticastSender。当我在 Windows XP 上运行接收器时,我无法接收数据包。我所有的 linux 接收器都按预期接收数据包。当我的发件人在 Windows 上时,事情也很好。
- 我在XP上关闭了防火墙。
- 我已将接口绑定到我希望数据包到达的套接字。
- 我的所有机器都在同一个网络上。
还有什么需要调整的吗?
如果您的接收器有多个网卡(例如安装了 VirtualBox),请降低第二个以太网卡的优先级。
开始 -> 控制面板 -> 网络设置 -> 更改适配器设置 -> Internet 协议属性 -> 高级 -> 取消选中自动度量并给出较高的值(例如 800)
将套接字绑定到 0.0.0.0 以便它可以通过所有接口接收多播。您可能还必须通过所有接口加入该组。
绑定到多播地址本身似乎是一种 Linux 主义。它在 Windows 上不起作用。
我在 Windows 2008 服务器和接收器上使用多播套接字发送器作为不同的网络设备,包括 PC。但是,从来没有遇到过在 Windows 7 专业版上使用 0.0.0.0 的挑战(不确定 XP)。我使用 226.xxx 地址。大多数 224.xxx 地址都被 IP 多播空间注册表占用(不确定 XP 是否不允许它们),默认情况下,我已经看到它不适用于多播接收器。您的端口号似乎很好,符合允许的范围。