Java-Streams: So lassen sich I/O-Funktionen per Fernzugriff nutzen

In dem Artikel „Einfach und übertragbar: Mit Java-Streams Daten lesen und schreiben“ wurden bereits die von der Java-Plattform bereitgestellten I/O-Klassen, -Schnittstellen und -Operationen vorgestellt. Jetzt sollen die I/O-Funktionen der Java-Plattform näher erläutert werden. Wie können die zum Lesen und Schreiben von Daten auf lokalen Dateisystemen eingesetzten Verfahren, Klassen und Datentypen auch per Fernzugriff genutzt werden?

Networking im Überblick

Ein Computer ist gewöhnlich mit einer physischen Verbindung ausgestattet, über die alle für ihn bestimmten Daten eingehen müssen. Das Problem dabei ist, dass zahlreiche verschiedene, mittels unterschiedlicher Protokolle übertragene Datentypen diese eine physische Verbindung nutzen müssen – und das auch noch gleichzeitig. Wie kann das Digitalgerät all dies schaffen? Mithilfe eines als Ports bekannten Konzepts stellt das Gerät für seine Umgebung eine simple Fassade bereit. Sie erweckt den Eindruck, es verfüge über eine unbegrenzte Anzahl an physischen Verbindungen.

Ein Port ist lediglich eine Nummer, die ein Computersystem zur Weiterleitung von Daten an die entsprechende Anwendung benutzt. Manche Portnummern, die auch als Well-Known-Ports bezeichnet werden, sind für bestimmte Dienste wie HTTP, FTP und SMTP reserviert. Diese Well-Known-Ports umfassen die Nummern 0 bis 1023. Die Portnummer wird, nebst den Identifikationsdaten des Empfängerrechners, zusammen mit den relevanten Daten über eine Netzwerkverbindung gesendet. Dieser Umstand macht die Kommunikation von Anwendungen auch für verschiedene Arten von Angriffen, etwa durch Hacker, anfällig. Doch das ist ein anderes Thema.

Bei Java-Netzwerkanwendungen spielen im Allgemeinen zwei Kommunikationsarten eine Rolle: TCP (verbindungsbasiert) und UDP (verbindungslos). Bei der verbindungsbasierten Kommunikation assoziiert eine Anwendung die als Sockets bezeichneten Endpunkte mit bestimmten Portnummern. Somit leitet das System alle für die Anwendung bestimmten Daten an einen spezifischen Port. Bei verbindungsloser Kommunikation werden dagegen einzelne Pakete mit einer Portnummer versehen und an ihre Ziele übermittelt.

Diese technischen Aspekte können mitunter recht komplex erscheinen. Aber zum Glück gibt es ja das java.net-Paket. Die in diesem Paket enthaltenen Klassen und Schnittstellen bieten einen einheitlichen Satz von Abstraktionen für Anwendungen in der Netzwerkkommunikation.

Das java.net-Paket

Das von Sun bereitgestellte java.net-Paket beinhaltet eine Socket-Klasse, die in einer aus mehreren Verbindungen bestehenden Kommunikation zwischen zwei Java-Programmen genau eine Verbindung darstellt. Die Socket-Klasse verbirgt die komplexen Details der einzelnen nativen Systeme gegenüber dem Java-Programm. Die java.net.Socket-Klasse ermöglicht Java-Programmen eine plattformunabhängige Netzwerkkommunikation. Außerdem bietet das java.net-Paket eine ServerSocket-Klasse. Diese repräsentiert eine von serverorientierten Anwendungen benutzte Verbindung zur Annahme von Datenströmen, die von Client-Anwendungen stammen.

Das java.net-Paket bietet Klassen und Schnittstellen zum Schreiben von Programmen, die entweder mit TCP oder UDP arbeiten. Anwendungen, die über TCP kommunizieren, benutzen die Klassen URL, URLConnection, Socket und ServerSocket. Anwendungen, die UDP einsetzen, verwenden die Klassen DatagramPacket, DatagramSocket und MulticastSocket.

Page: 1 2

ZDNet.de Redaktion

Recent Posts

Alphabet übertrifft die Erwartungen im ersten Quartal

Der Umsatz steigt um 15 Prozent, der Nettogewinn um 57 Prozent. Im nachbörslichen Handel kassiert…

3 Tagen ago

Microsoft steigert Umsatz und Gewinn im dritten Fiskalquartal

Aus 61,9 Milliarden Dollar generiert das Unternehmen einen Nettoprofit von 21,9 Milliarden Dollar. Das größte…

3 Tagen ago

Digitalisierung! Aber wie?

Mehr Digitalisierung wird von den Unternehmen gefordert. Für KMU ist die Umsetzung jedoch nicht trivial,…

3 Tagen ago

Meta meldet Gewinnsprung im ersten Quartal

Der Nettoprofi wächst um 117 Prozent. Auch beim Umsatz erzielt die Facebook-Mutter ein deutliches Plus.…

4 Tagen ago

Maximieren Sie Kundenzufriedenheit mit strategischem, kundenorientiertem Marketing

Vom Standpunkt eines Verbrauchers aus betrachtet, stellt sich die Frage: Wie relevant und persönlich sind…

4 Tagen ago

Chatbot-Dienst checkt Nachrichteninhalte aus WhatsApp-Quellen

Scamio analysiert und bewertet die Gefahren und gibt Anwendern Ratschläge für den Umgang mit einer…

4 Tagen ago