Boucle jusqu'à la réponse complète de TcpClient

J'ai écrit un simple TCP client et le serveur. Le problème se trouve avec le client.

J'ai un peu de mal à lire l'intégralité de la réponse du serveur. Je dois laisser le fil de sommeil afin de permettre que toutes les données seront envoyées.

J'ai essayé quelques fois de convertir ce code dans une boucle qui s'exécute jusqu'à ce que le serveur est la fin de l'envoi des données.

//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();

source d'informationauteur jim