Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - TCPClient ping di verifica
Forum - C# / VB.NET - TCPClient ping di verifica - Pagina 2

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
Roby94 (Member)
Guru


Messaggi: 1170
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 15:11
Lunedì, 19/01/2015
Scusate ma vorrei integrare la domanda, e se le parti fossero invertite? Il server deve solo attendere una connessione e quando arriva deve attendere dei dati, come puo capire se la "connessione" cade tra i due? In questo caso il server non puo controllare degli errori visto che non fa altro che aspettare.

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 15:49
Lunedì, 19/01/2015
In genere il server avvia una funzione

receive

in un thread specifico per ogni client e in questo caso la receive è sincrona. Esce con un errore (che indica la caduta della connessione) e interrompe il thread.



Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 15:57
Lunedì, 19/01/2015
gli eventi di "caduta di connessione" sono gestiti dal TCP, tu devi solo intercettarli :)

PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1170
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 17:06
Lunedì, 19/01/2015
Ho sempre adoperato il metodo DataAvailable per verificare se leggere i dati con ReadByte().
DataAvailable controlla anche se il client remoto ha chiuso la connessione?

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 17:15
Lunedì, 19/01/2015

Da MSDN ...

Utilizzare la proprietà DataAvailable per determinare se i dati sono pronti per la lettura. Se DataAvailable è true, una chiamata a Read viene terminata immediatamente. Se l'host remoto viene arrestato o la connessione viene chiusa, DataAvailable può generare una SocketException.


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1170
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 21:14
Lunedì, 19/01/2015
Scusa, hai ragione nessuno, solo che non faccio altro che passare da una pagina all'altra di MSDN e molte mi lasciano con tanti dubbi e a volte preferisco chiedere e avere i pareri di chi ha gia sbattuto la testa contro queste problematiche.

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo