1

TcpClient クラスを利用して telnet 接続を実装します。私が知らないのは、応答の終わりを決定する方法です。DataAvailable プロパティが true になると、Stream からデータを読み取り、DataAvailable が一時的に false に設定され、バッファが別のデータのチャンクで満たされているようですが、すべて読み取られて消えると思います。すべての応答が読まれたことを確認するにはどうすればよいですか?

以下のコード スニペットを変更して、これを正しく機能させる方法を教えてください。応答全体を取得するのに十分な時間があるため、コードをステップ実行すると正しく動作します。あなたの助けに感謝。

if (this.Stream.DataAvailable)
{
    readBuffer = new Byte[this.Client.ReceiveBufferSize];
    do
    {
        // read data
        bytes = this.Stream.Read(readBuffer, 0, readBuffer.Length);
        Thread.Sleep(10);
        responseData = String.Concat(responseData, System.Text.Encoding.ASCII.GetString(readBuffer, 0, bytes));

       } while (this.Stream.DataAvailable);

       allDataRead = true;
       break;
}
4

3 に答える 3