我编写了一个软件,用于加入多播组并处理数据包。这似乎可以在我测试过的很多机器上运行,包括 Windows(在 XP 到 8.1 上测试)和 Linux。除了一台机器:一台装有 Windows 8.1 的笔记本电脑。
我看了看问题如何知道 Windows 中我的网络是否启用了 IP 多播?然后尝试运行netsh interface ip show joins
,结果确认这台机器没有加入我试用软件的任何网络接口(wifi 或以太网)上的多播组。我也在 wireshark 上查找了 IGMP 消息,但什么也没看到。我禁用了防火墙等,但仍然没有结果。
我已经在另一台 Windows 机器上尝试过我的软件,并且它可以正常工作(无需接触防火墙),并且当我运行时我看到正确的组加入了netsh interface ip show joins
。
我能在这台特定机器上看到的唯一变量是它是一台笔记本电脑。我需要在 Windows 中启用特定设置以允许笔记本电脑接收多播数据包吗?还有其他方法可以调试此问题吗?这让我抓狂不已!
谢谢。
进一步说明:我尝试在 Linux VM 中运行该软件。在主机(Windows)操作系统下,Bridge 接口显示它加入了 中的多播组netsh interface ip show joins
。但硬件接口仍然没有加入。并且没有收到任何数据包。