Seite 1 von 1

Wie erkenne ich eine getrennte TCP Verbindung?

Verfasst: 30.07.2007 13:51
von dussel
Hallo zusammen,

in meinem aktuellem Projekt (NNTP Client) habe ich einerseits eine DownloadQueu mit Einträgen welche Downloads vorgenommen werden sollen, andererseits einen NetworkConnectionPool.

Das NNTP Protokoll setzt auf TCP. Daher soll der NetworkConnectionPool gewährleisten, das nicht für jeden Download eine neue NetworkConnection initiert werden muss und eine konfigurierbare Anzahl x paraleller Verbindungen weder unter- noch überschritten wird.

Die Datenstruktur und den Source habe ich bereits gebastelt und es läuft hervorragend. Bis, ja, bis zu meinem aktuellem Problem an dem ich nicht mehr weiter weiss.

Die letzte ConnectionID könnte ungültig geworden sein, da die TCP Verbindung (z.B. wegen Timout, DSL Reconnect, usw.) getrennt wurde.

Es ist eigentlich trivial, aber wie identifiziere ich ob eine TCP Verbindung (ConnectionID) noch Gültigkeit hat? Mit PB Boardmitteln habe ich dazu keine Lösung gefunden. Any Idea (Win + Lin) ?

Viele Grüße,
marc

Re: Wie erkenne ich eine getrennte TCP Verbindung?

Verfasst: 30.07.2007 14:36
von PureLust
dussel hat geschrieben:Es ist eigentlich trivial, aber wie identifiziere ich ob eine TCP Verbindung (ConnectionID) noch Gültigkeit hat? Mit PB Boardmitteln habe ich dazu keine Lösung gefunden. Any Idea (Win + Lin) ?
Eine "Are-you-alive"-Meldung schicken und bei einem TimeOut die Verbindung als verstorben erklären.

Verfasst: 30.07.2007 15:20
von dussel
Hallo PureLust,
Eine "Are-you-alive"-Meldung schicken und bei einem TimeOut die Verbindung als verstorben erklären.
ich könnte tatsächlich ein Kommando absenden und die Reaktion abwarten. Die Reaktion wäre entweder eine angemessene Antwort oder eben ein Timeout.

Die Lösung über Timeout hätte ich aus PerformanceGründen nur gerne vermieden, da es doch (hoffentlich/sicherlich) eine Möglichkeit gibt einen geregelten TCP Verbindungsabbau zu erkennen (FIN Paket).

Viele Grüße,
marc