Verifica connessione tcpClient

di il
4 risposte

Verifica connessione tcpClient

Ho realizzato un semplice client che si connette ad un server utilizzando la classe tcpClient e per verificare quando la connessione è avvenuta utilizzo la proprietà Connected.
Va tutto bene però, nel mio caso, qualche volta il server si può spegnere oppure può venire scollegato il cavo, ma la proprietà Connected (chiamata ciclicamente) continua a dirmi che è connesso, e mi accorgo di ciò da errori che ovviamente avvengono solo quando cerco di inviare qualcosa successivamente.
Non c'è il modo di verificare se il server è effettivamente ancora presente o no?
Grazie e ciao a tutti.

4 Risposte

  • Re: Verifica connessione tcpClient

    Dalla documentazione di MSDN sulla Connected :

    "The Connected property gets the connection state of the Client socket as of the last I/O operation.When it returns false, the Client socket was either never connected, or is no longer connected.
    Because the Connected property only reflects the state of the connection as of the most recent operation, you should attempt to send or receive a message to determine the current state.After the message send fails, this property no longer returns true"
  • Re: Verifica connessione tcpClient

    Il trucco consiste nel far si che client e server si scambino un messaggio di servizio chiamato keep alive, con il quale aggiornare un timestamp che tiene teaccia dell'ultima connessione riuscita.
    Dopo un certo numeri di keepalive mancati/persi, si puo' considerare la connessione caduta.
  • Re: Verifica connessione tcpClient

    Intanto grazie per le risposte tempestive.
    Si, avevo pensato ad un messaggio fasullo ma non credo che il server mi restituisca qualcosa o che mi possa fare da "echo" (è un device industriale), comunque ricontrollerò la documentazione.
  • Re: Verifica connessione tcpClient

    Sicuramente ci sono comandi per leggere lo stato, utilizza quelli
Devi accedere o registrarti per scrivere nel forum
4 risposte