Zhen
Lt. Junior Grade
- Registriert
- Aug. 2009
- Beiträge
- 299
Hallo Leute,
ich hätte da ne Frage bezüglich des TcpClients und TcpListeners.
Ich habe mir ein kleines Chat-Tool zusammenprogrammiert. Funktioniert auch alles einwandfrei, aber ein Problem hätte ich da.
Wenn das Chat-Programm beim Client ordnungsgemäß geschlossen wird (oder sich schließt, weil der PC heruntergefahren wird), dann meldet es sich ganz normal beim Server ab... aber... wenn jetzt z.B. (aus welch einem Grund auch immer), das Programm abstürzt oder das Netzwerkkabel gezogen wird (mit anderen Worten: das Programm NICHT ordnungsgemäß beendet wird), dann wird der Client am Server trotzdem als Online angezeigt.
Ich habe zwar nen Button mit einer Funktion eingebaut (beim Server), der dann prüfen soll, aber die entsprechenden Clients noch verbunden sind (falls nicht, dann aus der Liste austragen), aber das funktioniert nicht wie es soll.
Meine Idee war es einfach eine Nachricht an die Clients zu senden oder die "Connected"-Property abzufragen, aber beides sagt mir, dass noch eine Verbindung besteht. Das senden einer Nachricht spuckt keinen Fehler aus und die Property ist ständig auf true. Habt ihr vielleicht eine Idee wie man das lösen könnte?
Mir würde höchstens noch einfallen eine Ping-Klasse zu schreiben, aber soweit ich das mitbekommen habe ist das ewig viel Code für eine eigentlich doch eher nebensächliche Funktion
Deswegen meine Frage... gibt es nur den Weg über die Ping-Klasse oder gibts vielleicht noch ne andere Möglichkeit herauszufinden ob beim Client das Kabel gezogen wurde... ?
Danke schon mal im vorraus für eure Ratschläge und Hilfe.
ich hätte da ne Frage bezüglich des TcpClients und TcpListeners.
Ich habe mir ein kleines Chat-Tool zusammenprogrammiert. Funktioniert auch alles einwandfrei, aber ein Problem hätte ich da.
Wenn das Chat-Programm beim Client ordnungsgemäß geschlossen wird (oder sich schließt, weil der PC heruntergefahren wird), dann meldet es sich ganz normal beim Server ab... aber... wenn jetzt z.B. (aus welch einem Grund auch immer), das Programm abstürzt oder das Netzwerkkabel gezogen wird (mit anderen Worten: das Programm NICHT ordnungsgemäß beendet wird), dann wird der Client am Server trotzdem als Online angezeigt.
Ich habe zwar nen Button mit einer Funktion eingebaut (beim Server), der dann prüfen soll, aber die entsprechenden Clients noch verbunden sind (falls nicht, dann aus der Liste austragen), aber das funktioniert nicht wie es soll.
Meine Idee war es einfach eine Nachricht an die Clients zu senden oder die "Connected"-Property abzufragen, aber beides sagt mir, dass noch eine Verbindung besteht. Das senden einer Nachricht spuckt keinen Fehler aus und die Property ist ständig auf true. Habt ihr vielleicht eine Idee wie man das lösen könnte?
Mir würde höchstens noch einfallen eine Ping-Klasse zu schreiben, aber soweit ich das mitbekommen habe ist das ewig viel Code für eine eigentlich doch eher nebensächliche Funktion

Deswegen meine Frage... gibt es nur den Weg über die Ping-Klasse oder gibts vielleicht noch ne andere Möglichkeit herauszufinden ob beim Client das Kabel gezogen wurde... ?
Danke schon mal im vorraus für eure Ratschläge und Hilfe.