UDPClient不接收数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UDPClient不接收数据相关的知识,希望对你有一定的参考价值。

我的电脑上有2个Ifaces。我通过所有Ifaces发送请求。但我通过1 Iface接收数据。但是,在Wireshark中,我通过所有Ifaces看到了所有数据。如果我遍历所有接口而不是IPAddress.Any,这是有效的。

public static List<byte[]> ReceiveArrayData(int port, byte response, int timeout)
    {
        byte[] data;
        List<byte[]> result = new List<byte[]>();

        UdpClient udpClient = new UdpClient(port);
        IPEndPoint RemoteIpEndPoint = new IPEndPoint(IPAddress.Any, 0);

        Stopwatch sw = new Stopwatch();
        sw.Start();

        while (true)
        {
            if (udpClient.Available > 0)
            {   // получаем данные
                data = udpClient.Receive(ref RemoteIpEndPoint);
                if (data[0] == response)
                {
                    result.Add(data);
                    System.Console.WriteLine(Functions.ByteArrayToString(data));
                }
            }
            if (sw.ElapsedMilliseconds > timeout)
            {
                break;
            }
        }
        udpClient.Close();
        return result;
    }
答案

我在Windows防火墙中添加了对公共网络的应用程序访问后,它可以工作

以上是关于UDPClient不接收数据的主要内容,如果未能解决你的问题,请参考以下文章

UDP 协议 C# UdpClient乱序接收数据包丢失的问题 Socket ReceiveBufferSize

C#.Net UdpClient 接收事件

具有多个 NIC 的计算机上的 UDPClient 多播接收失败

重用 UdpClient 与处置它

无法使用UdpClient捕获收到的数据报

从使用 UdpClient 接收的 UDP 包中获取客户端 IP