Globalen Variablen
- FTP-Client im Eigenbau
- Globalen Variablen
Aktuelle Verbindungsdaten Der FTP-Client verlangt für seine Arbeit die Verbindungsdaten, die Sie im Bereich Einstellungen FTP eingeben. Per Klick auf die Schaltfläche Einstellungen übernehmen übergeben Sie die Eingaben den entsprechenden globalen Variablen. Unausgefüllte Felder belegt der St...
Aktuelle Verbindungsdaten
Der FTP-Client verlangt für seine Arbeit die Verbindungsdaten, die Sie im Bereich Einstellungen FTP eingeben. Per Klick auf die Schaltfläche Einstellungen übernehmen übergeben Sie die Eingaben den entsprechenden globalen Variablen. Unausgefüllte Felder belegt der Standard mit
FtpServer = "ftp.servername.de"
FtpUserName = "User"
FtpPw = "Anonymus"
Die Eingaben, welche die Listbox darstellt, stehen allen Prozeduren und Funktionen zur Verfügung (Sub btnInit_Click).
Dateiauswahl auf dem Client

Mit Hilfe von OpenFileDialog wählen Sie die Dateien auf Client aus. Durch die CheckedListBox, die mit dem Befehl Multiselect = True eine Mehrfachauswahl zulässt, legen Sie die Dateien für den Upload fest. Dieser erfolgt dann über den FtpWebRequest. In einer kleinen Extraroutine ergänzen Sie die korrekte Syntax des Webservers: Am Anfang muss zwingend ftp:// stehen, und die Syntax muss mit einem / enden.
Sollte das nicht der Fall sein, erledigt die Programmroutine das für Sie. Über eine CheckBox legen Sie fest, ob Sie Binär-oder Textdaten an den FTP-Server senden wollen. Mit der Klasse NetworkCredential wird das Passwort an den FTP-Server übergeben. Der Befehl WebRequestMethods.Ftp.UploadFile überträgt die ausgewählten Dateien über einen FileStream an den FTP-Server, wobei sich der Fortschrittsbalken mit Informationen füllt.
Dadurch ist der Anwender über den Stand der Uploads im Bilde. Zusätzliche Informationen werden an der Listbox ausgegeben. Sollte während des Vorgangs ein Fehler auftreten, so meldet dies eine MessageBox (Sub BTNDatAusClient_Click).
Um auf Server-Dateien zuzugreifen, setzen Sie WebRequest-Methode ein. Mit dem Befehl ListDirectory werden die Pfad-und Dateiinformationen vom angesprochenen Server geholt und anschließend mit einem StramReader ausgelesen: Dim streamr As New StreamReader(persFTPWebResponse.GetResponseStream).
Wenn Sie detaillierte Auskünfte vom Server benötigen, benutzen Sie den Befehl ListDirectoryDetails. Die dann angezeigte Liste muss allerdings noch formatiert werden und für die weiteren Funktionen muss der Dateiname aus den Informationen herausgefiltert werden. Doch in den meisten Fällen reicht der Befehl ListDirectory aus.
Die ausgelesenen Informationen werden in der CheckedListBox in der Gruppe Dateiauswahl Server ausgegeben. Um die Dateien auf dem Sever zu bearbeiten, setzen Sie die Befehle DeleteFile und DownloadFile ein. Welche Dateien Sie bearbeiten wollen, entscheiden Sie durch ein Häkchen in der CheckedListBox (sub ToolStripMenuItem1_Click).
Dateimanipulationen auf dem Server
Während Sie auf dem Client alle Dateimanipulationen mit den Standardwerkzeugen von Windows durchführen, ist das auf dem FTP-Server nicht so einfach. Deshalb verpassen Sie dem FTP-Client eine Funktion, um Dateien auf dem FTP-Server zu löschen.
Die Hauptfunkunktion hierbei ist: Net.WebRequestMethods.Ftp.DeleteFile. Vorher werden die ausgewählten Dateien aus der CheckBox des Servers ausgelesen und nacheinander abgearbeitet. Damit der Löscherfolg sofort sichtbar ist, werden die Routinen zum Trennen und erneutem Verbinden aufgerufen (Sub BTNDatServer_Click).
Wenn Sie vom FTP-Server Dateien downloaden, werden diese auf dem FTP-Server nicht gelöscht. Mit Hilfe des FolderBrowserDialog legen Sie fest, in welchem Ordner die Download-Dateien gespeichert werden. Damit der Download von Dateien schnell geht, halten Sie die Verbindung mit dem Befehl KeepAlive. Ein IO.Stream liest die Dateien zum Download so lange aus, bis der Buffer auf Null steht:
Using fs As New
...
(Sub btnDownload_Click)
IP-Adresse und Hostnamen
Damit Ihr Windows-PC Kontakt bekommt, baut die Funktionssammlung Windows Socket eine Verbindung zum Internet oder zu PCs in einer Netzwerkumgebung auf. Dabei handelt es sich üblicherweise um zwei Endpunkte, die miteinander kommunizieren.
Für viele Anwendungen ist es wichtig, den Hostnamen und die IP-Adresse eines Computers zu ermitteln. Das erledigen recht einfach ein paar Programmzeilen (Sub HostErmittelnToolStripMenuItem_Click):
Dim Hostname As String = Dns.GetHost..
Um IP-Adressen von anderen Computern im Netz oder im Internet zu erkennen, bauen Sie die Routine etwas um (FremdadresseErmittelnToolStripMenuItem_Click). Die Befehle finden Sie in unserem FTP-Client über den Menübefehl Tools.
Dim Webseite As String =
InputBox("Geben Sie bitte den Namen der gesuchten Website ein: ")
If My.Computer.Network.IsAvailable
Then
Dim IPAd As IPAddress = Dns.
GetHostEntry(Webseite).AddressList(0)
Dim IPAdStr As String = IPAd.
ToString
MessageBox.Show("Folgende IP Adresse
wurde für die Seite: " & Webseite & " erkannt: IP " & IPAdStr)
End If
Portnummern und deren Belegung
Ein Port gleicht einem Hafen für Adressen des Netzwerks. Für den FTP-Transfer sind die Portnummern 20 und 21 zuständig. Insgesamt reichen die Portnummern von 0 bis 65 535, die Prozesse oder Programme nutzen. Grob unterteilen sich die Portnummern in die Bereiche: Ports 0 bis 1023 gehören zur Gruppe der fest zugeordneten Ports, welche die IANA (Internet Assigned Numbers Authority) vergibt.
Jedem System ist bekannt, welche Protokolle in diesem Port-Bereich arbeiten. Die Ports 1024 bis 49151 gehören zu der Gruppe registered ports, die Prozesse und Anwendungen nutzen. Anwendungsentwickler können für eigene Protokolle Registrierungen beantragen. Die Ports 49 152 bis 65 535 gehören zur Gruppe dynamic and/or private ports, die keiner Anwendung fest zugeordnet sind. Sie überblicken wichtige Portnummern in der Tabelle.
Fazit:
Somit bietet Ihr eigener FTP-Client reichhaltige Optionen, die Sie in Ihr Programm einbauen können. Durch den Einsatz der Klassen FtpWebRequest und FtpWebResponse verwirklichen Sie alle benötigten Funktionen. Obgleich das nicht immer ganz trivial abläuft, sollte es mit den hier gezeigten Beispielen machbar sein. Sie finden den kompletten Programmcode in der Datei Form1.vb auf der Heft-DVD.