我有一台带有多个 NIC 的计算机 - UDPClient 的发送方法不断失败。这是代码:
private static void receiveData()
{
recvSock = new UdpClient(PORT);
//recvSock.Client.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.MulticastInterface, mainInterface);
recvSock.JoinMulticastGroup(IPAddress.Parse(IP), 50);
IPEndPoint iep = new IPEndPoint(IPAddress.Any, 0);
while (true)
{
byte[] data = recvSock.Receive(ref iep);
// Do not include messages from us
if (myIPs.Contains(iep.Address))
continue;
string stringData = Encoding.ASCII.GetString(data, 0, data.Length);
Console.WriteLine("received: " + stringData);
}
}
PORT = 5000 和 IP = 224.5.6.7 所以应该没问题。主要问题是我无法通过 recvSock.Receive() 行。我看到数据包通过wireshark进来 - 但代码不会处理它们......
想法?提前致谢!
担
编辑:我可以确认是多个 NIC 导致了问题 --- 代码在单个 NIC 上运行良好。取消注释 SetSocketOption 行应该允许它与多个 NIC 一起工作,但它仍然失败....想法?