TcpListener: come posso rilevare una disconnessione client?
-
05-07-2019 - |
Domanda
Come posso rilevare quando un client si disconnette da TcpListener?
Ciascuno dei miei clienti è gestito in un thread separato.
Soluzione
Guarda NetworkStream.Read o in base a cosa stai usando nel tuo codice, forse TCPClient.GetStream è più appropriato, ma sostanzialmente la stessa risposta.
Dai documenti:
Questo metodo legge i dati nel buffer parametro e restituisce il numero di byte letti correttamente. Se non ci sono dati disponibile per la lettura, il metodo Leggi restituisce 0. L'operazione Leggi legge come molti dati disponibili, fino al numero di byte specificato dalla dimensione parametro. Se l'host remoto viene chiuso giù la connessione e tutti disponibili i dati sono stati ricevuti, la lettura il metodo si completa immediatamente e restituisce zero byte.