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