FTP-Funktionalität in Visual-Basic-Anwendungen

Die Klassenbibliothek SimpleFTP verwendet fünf Hauptfunktionen von WinInet: InternetOpen, InternetConnect, InternetCloseHandle, FTPPutFile und FTPGetFile. Schauen wir uns diese Funktionen im Einzelnen an.

InternetOpen öffnet eine Internet-Sitzung für eine bestimmte Anwendung und sendet einen Session-Handle zurück, der nötig ist, um eine Verbindung mit einem Internet-Server aufzubauen. Diese Funktion muss aufgerufen werden, bevor die anderen WinInet-Funktionen verwendet werden können, allerdings sollte man deshalb nicht fälschlicherweise denken, dass sie den Computer tatsächlich wie eine Dialup-Verbindung mit dem Internet verbindet. Statt dessen stellt sie einfach nur die internen Ressourcen zur Verfügung, welche die Bibliothek braucht, um sich selbst und alle Server-Verbindungen, die im Anschluss daran noch aufgebaut werden, zu verwalten. Das Declare-Statement für InternetOpen sieht folgendermaßen aus:


Public Declare Function InternetOpen Lib "wininet.dll" _
Alias "InternetOpenA" (ByVal sAgent As String, _
ByVal lAccessType As Long, ByVal sProxyName As String, _
ByVal sProxyBypass As String, ByVal lFlags As Long) As Long

Nachdem die Internet-Sitzung mit InternetOpen hergestellt wurde, kann man InternetConnect aufrufen, um die Verbindung zu einem bestimmten Server herzustellen. InternetConnect sendet einen Connection-Handle zurück, der mit anderen, mit dem Server interagierenden Funktionen verwendet wird. Das Declare-Statement für InternetConnect sieht folgendermaßen aus:


Public Declare Function InternetConnect Lib "wininet.dll"_
Alias "InternetConnectA" (ByVal hInternetSession As Long,_
ByVal sServerName As String, ByVal nServerPort As Integer,_
ByVal sUsername As String, ByVal sPassword As String, _
ByVal lService As Long, ByVal lFlags As Long, _
ByVal lContext As Long) As Long

Einige dieser Argumente benötigen besondere Aufmerksamkeit:

  • Wie man vielleicht schon vermuten kann, ist hInternetSession der Session-Handle, der von InternetOpen zurückgesendet wurde.
  • Das Argument sServerName kann entweder eine IP-Adresse oder ein Domain-Name sein; die DNS-Konvertierung wird bei Bedarf automatisch durchgeführt.
  • Da diese Funktion verschiedene Verbindungsarten herstellen kann, teilt lService der Bibliothek mit, mit welcher Art von Dienst es kommuniziert und, sofern mit dem Argument nServerPort kein bestimmter Port angegeben wurde, auf welchem Standard-Port es kommunizieren soll.

Nun sind also die Verbindungen zu all diesen Servern hergestellt. Aber wie werden sie wieder getrennt? Dazu übergibt man den Connection-Handle (oder Session-Handle) an InternetCloseHandle, der es übernimmt, die vorhandenen Verbindungen zu schließen und die von ihnen beanspruchten Ressourcen freizusetzen.


Public Declare Function InternetCloseHandle Lib "wininet.dll" _
(ByVal hInet As Long) As Integer

Schließlich gibt es noch FTPGetFile und FTPPutFile, die dazu verwendet werden, Dateien von einem FTP-Server herunterzuladen und auf diesen heraufzuladen. Dieses sind starke, einfach zu verwendende Funktionen, die dafür sorgen, dass am entsprechenden Ende der Verbindung die neue Datei erstellt wird und dass die in der Datei enthaltenen Daten vom bzw. auf den Server übertragen werden. FTPGetFile enthält eine Option, mit welcher der Transfer abgebrochen wird, wenn die Zieldatei lokal bereits existiert (die Abfrage fFailIfExists ergibt den Wert True).


Public Declare Function FtpGetFile Lib "wininet.dll"_
Alias "FtpGetFileA" (ByVal hFtpSession As Long, _
ByVal lpszRemoteFile As String, _
ByVal lpszNewFile As String,
ByVal fFailIfExists As Boolean, _
ByVal dwFlagsAndAttributes As Long, _
ByVal dwFlags As Long, _
ByVal dwContext As Long) As Boolean

Public Declare Function FtpPutFile Lib "wininet.dll" _ Alias "FtpPutFileA" (ByVal hFtpSession As Long, _ ByVal lpszLocalFile As String, _ ByVal lpszRemoteFile As String, _ ByVal dwFlags As Long, _ ByVal dwContext As Long) As Boolean

Themenseiten: Anwendungsentwicklung, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu FTP-Funktionalität in Visual-Basic-Anwendungen

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *