【发布时间】:2010-10-16 09:24:31
【问题描述】:
我利用 TcpClient 类来实现远程登录连接。我不知道的是如何确定响应的结束。似乎一旦 DataAvailable 属性为真,我从 Stream 中读取数据,然后 DataAvailable 在缓冲区被另一块数据填充时临时设置为假,但我认为已全部读取并消失。如何确保已阅读所有回复?
您可能会建议我如何更改下面的代码 sn-p 以使其正常工作。当我单步执行代码时它可以正常工作,因为有足够的时间来检索整个响应。感谢您的帮助。
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;
}
【问题讨论】:
标签: c# telnet latency tcpclient lag