我的家庭网络上有一个联网的恒温器。它每隔一段时间发送一次多播数据包,以便更新监听设备的状态(温度,模式等)。我在网络上也有两台PC:运行Windows 7的台式PC和运行Windows 8.1的笔记本电脑。两者都连接在网络中的同一点。我在C#中编写了一个程序来接收数据包并显示它们的内容。我试过在每台PC上运行它。在每台PC上运行wireshark,我可以看到到达每台PC的数据包。我的代码是在Win 7 PC上捕获数据包,但在Win 8.1 PC上没有。谁能想到为什么会这样呢?
以下是我设置端口/客户端的代码:
multicast_udp = new UdpClient();
multicast_udp_ep = new IPEndPoint(IPAddress.Any, xxxxx);
multicast_udp.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
multicast_udp.Client.Bind(multicast_udp_ep);
IPAddress multicastAddress = IPAddress.Parse("xxx.xxx.xxx.xxx");
multicast_udp.JoinMulticastGroup(multicastAddress);
multicast_udp.BeginReceive(Multicast_UDP_IncomingData, null);
我已经完成了一些调试(我已经放了一些MessageBox.Show命令)并且我发现在Win 7机器上,正在调用Multicast_UDP_Incoming Data,但是在Win 8.1机器上它不是'吨。
有人可以帮忙吗?提前谢谢。