Код ниже читает все, что нужно прочитать из потока клиента 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();