我利用 TcpClient 类来实现 telnet 连接。我不知道的是如何确定响应的结束。似乎一旦 DataAvailable 属性为真,我从 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;
}