Hallo,
wir schreiben gerade an einem Jabberclienten und sind auf ein sehr merkwürdiges Problem gestoßen: Unser Client verbindet sich via TClientSocket mit dem Jabberserver und dieser schickt an alle anderen raus, dass wir online sind. Nach genau 30 Minuten sendet er, dass wir nicht mehr online sind und die Verbindung bricht zusammen - und hier liegt das Problem, denn:
* die Verbindung existiert auf dem Server nicht mehr (netstat)
* die Verbindung existiert auf unserem Client nicht mehr
* TClientSocket.Active ist weiterhin True
* TClientSocket löst bei besagtem Zeitpunkt keine Ereignisse aus
* auch das Senden auf dem "toten" Socket endet nicht in einem Fehler
Meine Vermutung ist, dass irgendein TCP keepalive Packet nicht gesendet wird, aber darauf hat man doch eigentlich aus Sicht unserer Programmierung keinen Einfluss, oder? Ich bin leider ziemlich ratlos und hoffe, dass uns jemand weiterhelfen kann! Der Fehler ist reproduzierbar, wobei es nervig ist, jedesmal 30 Minuten zu warten
Der Server läuft übrigens auf Linuxbasis, falls das bei der Problemfindung eine Rolle spielt...
Danke,
maxk
Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.