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 - Monitor per disconnettere Client
Forum - C# / VB.NET - Monitor per disconnettere Client

Avatar
orma674 (Normal User)
Pro


Messaggi: 66
Iscritto: 02/06/2008

Segnala al moderatore
Postato alle 22:58
Venerdì, 27/09/2013
ciao a tutti, mi date un suggerimento per monitorare quando un client si disconnette dal server. Ho provato, penso in modo errato ad interrogare il metodo connected ma senza avere risultati. Non so se sbaglio ad usarla o non fa al mio caso. ho provato a monitorare con una funzione lo stato.

Public function IsConnected (byVal vTcpClient as TcpClient) as Boolean
  if vTcpClient.Connected = True then
    return true
  else
    return false
  end if
end sub

PM Quote
Avatar
TheDarkJuster (Member)
Guru^2


Messaggi: 1620
Iscritto: 27/09/2013

Segnala al moderatore
Postato alle 9:48
Sabato, 28/09/2013
Connected non è un metodo. Comunque io invierei un segnale di presenza ogni 4-5 secondi, se non viene ricevuto dopo 10 secondi o si è disconnesso il client oppure il ping è mostruoso

PM Quote
Avatar
orma674 (Normal User)
Pro


Messaggi: 66
Iscritto: 02/06/2008

Segnala al moderatore
Postato alle 14:14
Sabato, 28/09/2013
Grazie mille.

Ottimo consiglio.

PM Quote
Avatar
orma674 (Normal User)
Pro


Messaggi: 66
Iscritto: 02/06/2008

Segnala al moderatore
Postato alle 21:07
Sabato, 28/09/2013
Ragazzi,
ho il seguente problema:

Inviando caratteri per controllare la presenza della connessione, mi si riempe il buffer in ricezione sul client di roba inutile.

ho provato a filtrare con una if ma questa non sta dietro al ciclo.

Mi date suggerimenti per l'invio di stringhe nulle che mi permettono di verificare la connessione ma non mi riempono il buffer.

Grazie per la collaborazione
Marcello

PM Quote
Avatar
TheDarkJuster (Member)
Guru^2


Messaggi: 1620
Iscritto: 27/09/2013

Segnala al moderatore
Postato alle 10:54
Domenica, 29/09/2013
non puoi inviare una stringa nulla, ma tu stai facendo una applicazoine che legge e scrive di continuo senza usare l' asincronia? Ti sei letto http://msdn.microsoft.com/en-us/library/bbx2eya8.aspx ? Quando leggi Dal socket dovresti comunque ricevere il numero di byte appena ricevuti, anche se di questo non sono molto sicuro.........

PM Quote
Avatar
cyclope05 (Normal User)
Newbie


Messaggi: 16
Iscritto: 06/09/2012

Segnala al moderatore
Postato alle 13:33
Mercoledì, 23/10/2013
salve ragazzi.... forse il mio non è un metodo molto ortodosso però funziona ... quindi provo a suggerirvelo.
io ho messo una procedura sia nel pulsante disconnetti che nella chiusura del form così che quando si chiude mi manda una ultima stringa con la dicitura "Abbandono la conversazione" io faccio così perchè la mia è una chat, quindi quando il server la riceve mi toglie dalla lista quello specifico client... spero di essere stato utile...
ciau

PM Quote
Avatar
orma674 (Normal User)
Pro


Messaggi: 66
Iscritto: 02/06/2008

Segnala al moderatore
Postato alle 1:03
Giovedì, 24/10/2013
Ciao cyclope05, in realtà avevo pensato a questo metodo ma questa non mi gestisce l'eccezione di chiusura forzata del client per errore, disconnessione, etc etc.

PM Quote
Avatar
TheDarkJuster (Member)
Guru^2


Messaggi: 1620
Iscritto: 27/09/2013

Segnala al moderatore
Postato alle 15:37
Giovedì, 24/10/2013
cyclope e se io faccio ALT+F4? Rimango connesso in eterno?

PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2305
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 16:45
Giovedì, 24/10/2013
Testo quotato

Postato originariamente da TheDarkJuster:

cyclope e se io faccio ALT+F4? Rimango connesso in eterno?



XD

Scherzi a parte.

L'unico metodo efficacie e quello che ha proposto il mio fratello dark XD

Il server e fatto proprio questo posto.
Per essere sottoposto a continui stress e lavorare costantemente.

ping > ip ( ip reply pong )

altrimenti è off. quindi distruggi il soket

se hai problemi nel buffer utilizza il metodo flush()


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote