c#udpclient响应缩短

时间:2010-09-09 23:41:06

标签: c# udp tcp udpclient

当我使用netcat发送udp查询时,我得到了完整的响应。当我在c#中使用UDPCLIENT类时,我没有收到完整的响应,它被缩短了。这是我的代码

byte[] data = new byte[1024];
            string stringData;

            UdpClient server = new UdpClient(currentIP, currentport);

            IPEndPoint send = new IPEndPoint(IPAddress.Any, 0);

            string query = "\\players\\";
            data = Encoding.ASCII.GetBytes(query);
            server.Send(data, data.Length);

            data = server.Receive(ref send);


            stringData = Encoding.ASCII.GetString(data, 0, data.Length);

            MessageBox.Show(stringData);

如何增加接收缓冲区以便存储完整的UDP响应?

1 个答案:

答案 0 :(得分:2)

第一:UDP不是保证协议;消息完全有可能丢失并永久无法访问。

其次,仅仅因为你打电话给接收并不意味着你得到了一切。您需要继续接收和解析收到的数据,直到您碰巧使用的任何应用程序级协议(在您的示例中似乎没有一个)告诉您是时候停止接收和处理消息。