下面的代码从 tcp 客户端流中读取所有要读取的内容,并且在下一次迭代中,它将仅位于 Read() 上(我假设等待数据)。我如何确保它不会,并且在没有什么可读的时候返回?我是否必须设置低超时,并在异常失败时响应异常?还是有更好的方法?
TcpClient tcpclnt = new TcpClient();
tcpclnt.Connect(ip, port);
Stream stm = tcpclnt.GetStream();
stm.Write(cmdBuffer, 0, cmdBuffer.Length);
byte[] response = new Byte[2048];
MemoryStream ms = new MemoryStream();
byte[] buffer = new Byte[2048];
int length;
while ((length = stm.Read(buffer, 0, buffer.Length)) > 0)
ms.Write(buffer, 0, length);
byte[] response = ms.ToArray();
tcpclnt.Close();