Wie erkenne ich eine getrennte TCP Verbindung?

Anfängerfragen zum Programmieren mit PureBasic.
dussel
Beiträge: 49
Registriert: 15.09.2004 12:52
Wohnort: Bei Frankfurt/Main

Wie erkenne ich eine getrennte TCP Verbindung?

Beitrag 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
Benutzeravatar
PureLust
Beiträge: 1145
Registriert: 21.07.2005 00:02
Computerausstattung: Hab aktuell im Grunde nur noch 'nen Lenovo Yoga 2 Pro im Einsatz.
Wohnort: am schönen Niederrhein

Re: Wie erkenne ich eine getrennte TCP Verbindung?

Beitrag 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.
[Dynamic-Dialogs] - komplexe dynamische GUIs einfach erstellen
[DeFlicker] - Fenster flimmerfrei resizen
[WinFX] - Window Effekte (inkl. 'durchklickbares' Window)
dussel
Beiträge: 49
Registriert: 15.09.2004 12:52
Wohnort: Bei Frankfurt/Main

Beitrag 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
Antworten