我有一个问题,只有当我禁用计算机条1上的所有网卡时,UDPClient接收才能工作。如果我使用的网卡超过一张,它就会永远阻塞。我能看到wireshark上的数据,所以我可以在那里接收到。
无论如何,我知道多个NIC存在一个问题,但建议的解决方案是在UdpClient构造函数中设置一个特定的UdpClient,并使用您希望使用的NIC的IP。代码如下:
public void ReceiveData()
{
try
{
receiveClient = new UdpClient(new IPEndPoint(AConfiguredIPAddressofOneOfMyNICs, port));
receiveClient.JoinMulticastGroup(IPAddress.Parse("240.0.0.1"));
IPEndPoint endPoint = new IPEndPoint(IPAddress.Any, 0);
Byte[] receiveBytes = receiveClient.Receive(ref endPoint); // blocks forever人们有什么想法吗?
发布于 2014-08-18 09:27:55
我发现了问题所在。您需要指定希望用于接收JoinMulticastGroup调用中的数据包的NIC的ip地址。所以这个:
receiveClient.JoinMulticastGroup(ConfigFile.MulticastIP);变成这样:
receiveClient.JoinMulticastGroup(ConfigFile.MulticastIP, AConfiguredIPAddressofOneOfMyNICs);https://stackoverflow.com/questions/25328644
复制相似问题