c#: UDPClient没有从其中一个网络适配器接收多播



我想测试使用UDP客户端接收多播消息

我有两个网卡。

网络1:local IP: 10.239.1.1[组播组:224.1.1.1:42333]

网络2:本地IP: 172.4.1.1[组播组:224.0.1.1:42333]

注意:我可以在wire shark上看到所有的组播

在我的程序中,我创建并加入了组播组,如下所示。

_LocalUDPClient = new UdpClient(new IPEndPoint(_localIpAddress, _multiCastPort));
_LocalUDPClient.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
_LocalUDPClient.JoinMulticastGroup(_multicastIpAddress, _localIpAddress);
_LocalUDPClient.BeginReceive(new AsyncCallback(ReceiveCallBack), null);

网络1:

_localIpAddress = 10.239.1.1
_multicastIpAddress = 224.1.1.1
_multiCastPort = 42333

I received multicast message successfully.

但网络2:

_localIpAddress = 172.4.1.1
_multicastIpAddress = 224.0.1.1
_multiCastPort = 42333

未收到任何组播数据。

这不是c#代码问题,这是防火墙问题。在系统设置下打开防火墙和网络保护您应该可以在"允许应用程序通过防火墙"下看到您的。exe。

在我的情况下,我可以看到它3次不同的设置。我删除了所有的,并手动添加了我的程序。exe,允许所有网络类型,我现在得到了多播。

相关内容

最新更新