Windows 8.1中缺少多播数据包

时间:2014-06-16 20:17:31

标签: c# windows sockets networking multicast

我的家庭网络上有一个联网的恒温器。它每隔一段时间发送一次多播数据包,以便更新监听设备的状态(温度,模式等)。我在网络上也有两台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机器上它不是'吨。

有人可以帮忙吗?提前谢谢。

0 个答案:

没有答案