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:
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 BooleanPublic 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
Betroffen sind Windows und Windows Server. Microsoft patcht aber auch Schwachstellen in Excel, Word und…
Es lässt sich um bis zu 50 Prozent dehnen. Allerdings besitzt es eine deutliche geringere…
Allerdings nimmt auch die Resilienz gegenüber Cyberattacken zu. Das BSI hat außerdem die Cybersicherheit anstehender…
Es ist das größte Wachstum in einem Jahr seit 2021. Unter anderem lässt das Interesse…
Magento zählt zu den führenden Shopsystemen in der Welt. Es punktet mit hoher Flexibilität und…
SteelFox gelangt über angebliche Cracks für kostenpflichtige Anwendungen auf die Rechner seiner Opfer. Betroffen sind…