0

メッセージ全体 (応答) を取得する必要がありsocket.ReceiveBytes();ますが、メッセージの一部だけを返します。ループしようとしましたが、受信するバイトがない場合、タイムアウトで失敗します。

List<byte> lb = new List<byte>();
byte[] receivedMsg = socket.ReceiveBytes();   
while (receivedMsg.Length > 0)
{         
     lb.AddRange(receivedMsg);
     receivedMsg = socket.ReceiveBytes();
}

では、読み取るバイトがあるかどうかを確認するにはどうすればよいですか? メッセージ全体を読むにはどうすればよいですか?

4

1 に答える 1

0

これは Chilkat の実装であるため、おそらく開発者に連絡する必要があります。しかし、これが役立つことがわかりました:http://www.cknotes.com/?p=302

最終的には、メッセージ全体を構成するためにソケットから読み取る量を知る必要があります。たとえば、上層のプロトコルがポートマッパーである場合、RFC で指定された形式 (http://tools.ietf.org/html/rfc1833) のメッセージが期待されていることがわかります。

ソケット接続を介して独自のプロトコルを展開している場合は、最初の 4 バイトに合計メッセージのサイズを入れることに関する Chilkat ブログ投稿の方法を使用してください。

于 2012-05-31T12:52:29.570 に答える