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
Wie erkenne ich eine getrennte TCP Verbindung?
- 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?
Eine "Are-you-alive"-Meldung schicken und bei einem TimeOut die Verbindung als verstorben erklären.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) ?
[Dynamic-Dialogs] - komplexe dynamische GUIs einfach erstellen
[DeFlicker] - Fenster flimmerfrei resizen
[WinFX] - Window Effekte (inkl. 'durchklickbares' Window)
[DeFlicker] - Fenster flimmerfrei resizen
[WinFX] - Window Effekte (inkl. 'durchklickbares' Window)
Hallo PureLust,
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
ich könnte tatsächlich ein Kommando absenden und die Reaktion abwarten. Die Reaktion wäre entweder eine angemessene Antwort oder eben ein Timeout.Eine "Are-you-alive"-Meldung schicken und bei einem TimeOut die Verbindung als verstorben erklären.
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