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

Java-Programme, die mit Socket-Klassen aus dem java.net-Paket arbeiten, müssen die Verbindungen initialisieren, über die sie kommunizieren wollen. Anschließend werden die Daten an die Verbindung geschrieben beziehungsweise aus dieser gelesen.

Um Daten aus einer Socket-Verbindung lesen respektive an eine solche schreiben zu können, ist ein Output- oder Input-Stream vom Socket erforderlich. An den Stream kann dann geschrieben oder aus ihm gelesen werden. Dieser Vorgang funktioniert ähnlich wie die Verfahren zum Schreiben in eine Datei auf einem lokalen Dateisystem.

TCP-Client und -Server

Hier nun ein Blick auf ein einfaches Beispiel, das diese Interaktion von Verbindungen und Datenstreams verdeutlicht. Der Code dazu ist in Listing A aufgeführt. Das Programm implementiert eine Client-Klasse, TCPClient, die eine Verbindung zur Server-Klasse, TCPServer, herstellt. Der Server empfängt Daten vom Client, schreibt die Daten an System.out und sendet dann eine Bestätigung an den Client zurück.

Listing A

Der Server öffnet einen Socket auf Port 7776 und wartet dann, dass ein Client eine Verbindung aufbaut. Nachdem ein Client einen erfolgreichen Verbindungsaufbau durchgeführt hat, öffnet der Server den Input-Stream und den Output-Stream auf dem Client-Socket, um Daten zu lesen und zu schreiben. Die Streams und Reader werden dabei ganz ähnlich benutzt wie beim Schreiben in ein lokales Dateisystem.

Der Client (siehe Listing B) versucht einen Socket an Port 7776 zu erstellen, der eine Verbindung zum Server aufbaut. Ist der Verbindungsaufbau erfolgreich, liest der Client die vom Benutzer eingegebenen Daten und schreibt sie dann mithilfe des vom Socket bereitgestellten Output-Streams an den Server. Das Client-Programm liest schließlich die vom Server zurückgegebenen Daten und meldet sie System.out.

Listing B

Page: 1 2

ZDNet.de Redaktion

Recent Posts

Netzwerk-Portfolio für das KI-Zeitalter

Huawei stellt auf der Connect Europe 2024 in Paris mit Xinghe Intelligent Network eine erweiterte…

1 Tag ago

Internet-Tempo in Deutschland: Viel Luft nach oben

Höchste Zeit für eine schnelle Kupfer-Glas-Migration. Bis 2030 soll in Deutschland Glasfaser flächendeckend ausgerollt sein.

1 Tag ago

Erste Entwickler-Preview von Android 16 verfügbar

Schon im April 2025 soll Android 16 den Status Plattformstabilität erreichen. Entwicklern gibt Google danach…

1 Tag ago

Kaspersky warnt vor Cyberangriff auf PyPI-Lieferkette

Die Hintermänner setzen KI-Chatbot-Tools als Köder ein. Opfer fangen sich den Infostealer JarkaStealer ein.

2 Tagen ago

Digitale Produkte „cyberfit“ machen

Vernetzte Produkte müssen laut Cyber Resilience Act über Möglichkeiten zur Datenverschlüsselung und Zugangsverwaltung verfügen.

2 Tagen ago

Google schließt schwerwiegende Sicherheitslücken in Chrome 131

Das jüngste Update für Windows, macOS und Linux stopft drei Löcher. Eine Anfälligkeit setzt Nutzer…

2 Tagen ago