0

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応答を保存するように受信バッファーを増やすにはどうすればよいですか?

4

1 に答える 1

2

まず、UDPは保証されたプロトコルではありません。メッセージが失われ、永久にアクセスできなくなる可能性があります。

第二に、あなたが受信を呼び出したからといって、あなたがすべてを手に入れたという意味ではありません。使用しているアプリケーションレベルのプロトコル(例では1つではないようです)がメッセージの受信を停止して処理する時期であると通知するまで、受信したデータの受信と解析を続ける必要があります。

于 2010-09-09T23:58:54.137 に答える