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

Microsoft nennt weitere Details zu kostenpflichtigen Patches für Windows 10

Erstmals liegen Preise für Verbraucher vor. Sie zahlen weniger als Geschäftskunden. Dafür beschränkt Microsoft den…

18 Stunden ago

Microsoft verschiebt erneut Copilot Recall

Die Entwickler arbeiten noch an weiteren „Verfeinerungen“. Windows Insider erhalten nun wohl eine erste Vorschau…

2 Tagen ago

GenKI im Job: Mitarbeitende schaffen Tatsachen

Laut Bitkom-Umfrage werden in jedem dritten Unternehmen in Deutschland private KI-Zugänge genutzt. Tendenz steigend.

2 Tagen ago

97 Prozent der Großunternehmen melden Cyber-Vorfälle

2023 erlitten neun von zehn Unternehmen in der DACH-Region Umsatzverluste und Kurseinbrüche in Folge von…

2 Tagen ago

„Pacific Rim“-Report: riesiges, gegnerisches Angriffs-Ökosystem

Der Report „Pacific Rim“ von Sophos beschreibt Katz-und-Maus-Spiel aus Angriffs- und Verteidigungsoperationen mit staatlich unterstützten…

2 Tagen ago

DeepL setzt erstmals auf NVIDIA DGX SuperPOD mit DGX GB200-Systemen

NVIDIA DGX SuperPOD soll voraussichtlich Mitte 2025 in Betrieb genommen und für Forschungsberechnungen genutzt werden.

2 Tagen ago