Je voudrais vider tampon de lecture de la prise donc j'écrit le code de suivi ...Comment appeler NetworkStream.Read() sans blocage?
byte[] tempBuffer = new byte[1024];
int readCount = 0;
while ((readCount = tcpSocket.GetStream().Read(tempBuffer, 0, tempBuffer.Length)) != 0)
{
// do with tempBuffer
}
Mais méthode Read() est bloquée alors j'ai ajouté tcpSocket.ReceiveTimeout = 1;. Et cela fonctionne comme avant.
Comme je sais, cela est généralement utilisé en C++. Comment puis-je résoudre ce problème?
J'ai enveloppé mon code avec un bloc try-catch afin de détecter la déconnexion. Si j'utilise la propriété DataAvailable, comment puis-je le faire? –
Si vous suivez le lien vers la méthode DataAvailable dans ma réponse, vous verrez qu'il y a un exemple de code qui fait ce que vous voulez. Vous êtes bien sûr libre d'emballer le tout dans un essay-catch pour gérer la déconnexion. –