![]() |
Überprüfen, ob FTP-Verbindung noch steht (WinInet)
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:
Mich verwirren allerdings diese Buffer-Sachen,
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 bisher habe ich folgendes geschrieben:
Delphi-Quellcode:
Ich habe zwar "Buffer" eingefügt, verstehe aber leider nicht genau,
var
Buffer: Cardinal; [...] If InternetQueryOption( fNet, INTERNET_OPTION_KEEP_CONNECTION, nil, Buffer) = Bool(INTERNET_KEEP_ALIVE_ENABLED) then 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 |
Re: Überprüfen, ob FTP-Verbindung noch steht (WinInet)
Hi.
Zu deinen Fragen: Normalerweise hat der Server ein vorgegebenes Timeout, beispielsweise 300s. d.h. wenn 300s abgelaufen sind ohne das was passiert ist, dann trennt er die Verbindung. Also zu deinem Timeoutproblem und dem Buffer da. Wieso hällst du die Verbindung nicht einfach offen indem du das Timeout des Servers abfragst un dann immer 5s vor dem Timeout irgendeinen unnötigen Befehl wie dir oder einfach nur ping ausführst? So dürfte die Verbindung immer offen bleiben. |
Re: Überprüfen, ob FTP-Verbindung noch steht (WinInet)
Zitat:
Ich weiß ja nicht, wie du die Daten auf den Server bringst ( ![]() ![]() ![]() ![]() //edit: @Flips: Zitat:
![]() |
Re: Überprüfen, ob FTP-Verbindung noch steht (WinInet)
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz