Dateitransfer

Globalen Variablen

18.4.2011 von Peter Schnoor

ca. 3:45 Min
Ratgeber
VG Wort Pixel
  1. FTP-Client im Eigenbau
  2. 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 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

image.jpg
Erfolgreiche Verbindung: Sie sehen in der Auswahlliste die Dateien auf dem FTP-Server.
© PC Magazin

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.

Mehr lesen

Chronologische Liste und Netflix-Links

Marvel-Filme- und -Serien: Das ist die richtige Reihenfolge

Neuerscheinungen in der Übersicht

Netflix: Neue Filme und Serien

Vorschau auf Film- und Serien-Highlights

Amazon Prime Video: Neuheiten

Weiter zur Startseite  

Mehr zum Thema

HTML 5

Webgestaltung

Google Web Designer: Videos einbinden mit HTML5

Google Web Designer ist spezialisiert auf HTML5. Ein Vorteil dieses Standards ist das einfache Einbinden von Videos mit dem Element video. Wir zeigen…

Wir verraten, wie Sie Fritzboxen und andere Router vor Hackern schützen.

Fritzbox, Asus, Belkin und Co.

WLAN-Router vor Hackern schützen - so geht's

Fritzbox, Asus, Belkin oder DLink - die Liste der geknackten Router ist lang. Hacker stahlen Passwörter oder NAS-Daten. So machen Sie Ihren Router…

Wir führen Sie zur eigenen Windows-App - unserem PC-Magazin-RSS-Feed.

C# und XAML

Windows 8.1 Apps programmieren - so geht's

Wir zeigen, wie Sie Windows 8.1 Apps selbst programmieren können. Lernen Sie das App erstellen an Hand unseres Beispiels: dem RSS-Feed von PC Magazin.

Windows Tipps & Tricks: Benutzerrechte unter Windows 8.1

Programme richtig installieren

Benutzerrechte unter Windows 8.1

Wir zeigen Ihnen, wie Sie sich unter Windows 8.1 alle Benutzerrechte verschaffen und Programme richtig installieren.

Windows 8: Starbildschirm

Microsoft Project Siena

Wie Sie Windows-8-Apps selber erstellen

Erstellen Sie sich selbst eine App für Windows 8, die auf alle Funktionen Ihres Tablets zugreifen kann, inklusive Kamera, Mikrofon und Lautsprecher.…