Socket und Disconnect
-
Hallo alle zusammen

Also nehmen wir mal an ich habe einen server ...
ein Client verbindet sich und der Server trägt ihn sauber in eine ClientVerwaltungsliste ein ...So jetzt schmiert der Client ab und der Server soll aber sofort mitbekommen, das der client tot ist.
Gibt es da irgendeine Möglichkeit, per API vieleicht oder so.
Denn ich habe das bei FTP Servern/Clients beobachtet:
Geht der FTP Server offline so trennt auch der Client in der selben Sekunde die verbindung bzw. der Client sagt mir sofort das die Verbindung getrennt wurde.Und genau das selbe möchte ich mit meinem Programm realisieren.
Ohne das ich ständig Packete mit "Hallo, lebst du noch?" schicken muss *g*
Mfg
Christian
-
Wie soll der Client denn noch was schicken wenn der abschmiert?
Wieso sendeste nich einfach alle 5 Sekunden n "Hallo lebst du noch" das is wahrscheinlich das günstigste Lösung... Ich mein wie sollste das denn sonst machen. Geht ja wohl nur Serverseitig wenn kein Client mehr da is.
Kannst es natürlich auch umgekehrt machen dass du alle 5 Sekunden vom Client zum Server einen schickst... Kommt aber aufs gleiche hinaus.
-
Also so wie ich das sehe findet beim abschmieren ja kein disconnect statt! Also dürfte auch kein onDisconnet ausgelöst werden!
Der Server kann ja nicht wissen ob der server noch on ist!
also würde ich auch sagen musst ein aLive signal schicken!
Wenn du ne andere Lösug findest Bitte posten würde mich auch interessieren!
THX
Dagsta
-
Das hab ich doch alles in meinem Beitrag schon gesagt.
-
Geht der FTP Server offline
Geht der Client offline merkt das der Server auch.
Und schmiert der Server ab, merkt das auch der Client nicht sofort.
Bei FTP Servern is das mein ich so, das es keine ständige communikation gibt,sondern der server nach XXX sekunde leerlauf einfach den Client kickt.
Der merkt das dann auch erst, bei der nächsten Aktion.also entweder wie aaaabyx gesagt hat, oder halt einfach nach bestimmter lerlaufzeit kicken.
-
Nach bestimmter Leerlaufzeit kicken wär imho ne ziemlich ungeeignete Lösung da er ja anscheinend nur bei Bedarf mit den Clients kommunizieren will und nicht ständig...
-
Auch bei FTP wird der Client nicht immer gekickt, er kann ein "StayConnected" senden, oder wie das heißt, sodass ihn der Server nicht einfach so rausschmeißt.
Ich würde dir raten mit Ping zu arbeiten, ping den Client mit einem Byte an, ein Byte ist ja nicht groß und sollte nach spätestens 50ms wieder zurückkommen, sollte nach 100ms dennoch nichts da sein, ist es eine schlechte verbindung bzw. anzunehmen, dass der Client so nichtmehr existiert und du kannst ihn aus der Liste streichen und evtl. kicken, da der Server ja immernoch denkt, dass er mit dem Client verbunden sei. Frag mich nicht, wie du ein Ping sendest, denn das weiß ich leider auch nicht

-
Das bringt nix du Trottel wenn der Client abgestürtzt is und der Computer noch läuft kommt auch n Ping zurück in sofern nicht sinngemäß.
-
aaaabyx schrieb:
Das bringt nix du Trottel [...]
Bitte auf den Tonfall achten.
-
Jaja entschuldige bitte...
~War klar dass sowas kommt...~