Einzelnen Beitrag anzeigen

Pfoto

Registriert seit: 26. Aug 2005
Ort: Daun
541 Beiträge
 
Turbo Delphi für Win32
 
#1

Überprüfen, ob FTP-Verbindung noch steht (WinInet)

  Alt 5. Jan 2007, 18:52
Hallo zusammen,

ich hänge gerade an folgendem Problem:

Die FTP-Verbindung wird ja für gewöhnlich nach einer bestimmten Zeit der Inaktivität abgebrochen (macht dies eigentlich der Server oder Windows?)

Der User soll zu einem beliebigen Zeitpunkt eine Datei z.B. hochladen können.
Jetzt wäre es gut, das Programm könnte überprüfen, ob die Verbindung noch steht,
anstatt grundsätzlich eine Neuanmeldung vorzunehmen.

Ich arbeite mit WinInet und habe bei MSDN folgende Funktion gefunden:

Delphi-Quellcode:
BOOL InternetQueryOption(
    IN HINTERNET hInternet OPTIONAL,
    IN DWORD dwOption,
    OUT LPVOID lpBuffer OPTIONAL,
    IN OUT LPDWORD lpdwBufferLength

{ Returns an indication whether this handle uses persistent connections. Can be one of these values: }
INTERNET_KEEP_ALIVE_UNKNOWN
INTERNET_KEEP_ALIVE_ENABLED
INTERNET_KEEP_ALIVE_DISABLED
Mich verwirren allerdings diese Buffer-Sachen,
bisher habe ich folgendes geschrieben:
Delphi-Quellcode:
var
  Buffer: Cardinal;
[...]
  If InternetQueryOption(
     fNet,
     INTERNET_OPTION_KEEP_CONNECTION,
     nil,
     Buffer) = Bool(INTERNET_KEEP_ALIVE_ENABLED) then
Ich habe zwar "Buffer" eingefügt, verstehe aber leider nicht genau,
warum diese Parameter vorhanden sind.

Zudem gibt die Funktion auch bei soeben gestarteter Verbindung ein
"False" zurück.

Weiß jemand Rat? Vielleicht gibt es ja auch eine ganz andere, passende Funktion dafür.


Dank und Gruß
Pfoto
Jürgen Höfs
  Mit Zitat antworten Zitat