Hallo!
Ich habe gerade kein Werk über TCP/IP zur Hand, und muß zugeben, daß ich eventuell mehr hätte aufpassen sollen; wie auch immer:
Wie bemerkt man, daß eine TCP/IP Verbindung zusammengebrochen ist?
Ich habe einen Server geschrieben, der 24/7 läuft. Wenn meinen dynamische IP wechselt, werden alle Verbindungen zum Server unterbrochen (logisch). Der Server merkt das aber gar nicht, denn schliesslich schliesst niemand die Verbindung. Weil die Clients senden können, wenn sie wollen, aber nicht müssen, und der Server nur sendet, wenn ein Client vorher gesendet hat (es ist so eine Art Broadcasting-Server), wartet der Server nach dem IP-Wechsel ewig darauf, daß etwas passiert.
Die Clients können sich nicht wieder am Server einloggen, weil jeder client sich mit einem passwort anmelden muss und der Server keine Doppelverbindungen zulässt (und der Server denkt ja, die Clients sind noch verbunden, senden nur gerade nichts).
Was kann ich da machen? Was passiert z.B., wenn der Server versucht, über die zusammengebrochenen Verbindungen zu senden? Merkt er dann, daß die Verbindungen geschlossen wurden?
Ist also das Senden von Test-Paketen alle paar Sekunden (mit Timout, wenn nichts zurückkommt) die einzige Lösung für dieses Problem?
Ich fände das so niederschmetternd unelegant.
Gruesse,
Bio