C # udpclient ответ оборван - PullRequest
       22

C # udpclient ответ оборван

0 голосов
/ 10 сентября 2010

Когда я использую netcat для отправки запроса udp, я получаю полный ответ.Когда я использую класс UDPCLIENT в c #, я не получаю полный ответ, он обрывается.Вот мой код

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 Ответ

2 голосов
/ 10 сентября 2010

Первое: UDP не является гарантированным протоколом;Вполне возможно, что сообщение теряется и постоянно недоступно.

Во-вторых, то, что вы позвонили на прием, не означает, что вы получили все.Вы должны продолжать получать и анализировать полученные данные до тех пор, пока какой-либо протокол уровня приложения, который вы используете (в вашем примере его не будет), не сообщит вам, что пришло время прекратить получать и обрабатывать сообщение.

...