Цикл до тех пор, пока не будет полностью прочитан ответ TcpClient

Я написал простой клиент и сервер TCP. Проблема кроется в клиенте.

У меня проблемы с чтением всего ответа от сервера. Я должен позволить потоку спать, чтобы разрешить отправку всех данных.

Я несколько раз пытался преобразовать этот код в цикл, который выполняется до тех пор, пока сервер не закончит отправку данных.

// Init & connect to client
TcpClient client = new TcpClient();
Console.WriteLine("Connecting.....");
client.Connect("192.168.1.160", 9988);

// Stream string to server
input += "\n";
Stream stm = client.GetStream();
ASCIIEncoding asen = new ASCIIEncoding();
byte[] ba = asen.GetBytes(input);
stm.Write(ba, 0, ba.Length);

// Read response from server.
byte[] buffer = new byte[1024];

System.Threading.Thread.Sleep(1000); // Huh, why do I need to wait?

int bytesRead = stm.Read(buffer, 0, buffer.Length);
response = Encoding.ASCII.GetString(buffer, 0, bytesRead);
Console.WriteLine("Response String: "+response);

client.Close();
11
задан John Saunders 6 November 2011 в 15:25
поделиться