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

Latrodectus: Gefährlicher Nachfolger von IcedID

Latrodectus, auch bekannt als BlackWidow, ist auch unter dem Namen LUNAR SPIDER bekannt.

2 Tagen ago

Apple meldet Rekordumsatz im vierten Fiskalquartal

Die Einnahmen klettern auf fast 95 Milliarden Dollar. Allerdings belastet der Steuerstreit mit der EU…

5 Tagen ago

Baseus Bowie 30 Max: Erste Bluetooth-Kopfhörer mit Head-Tracking-Spatial-Audio

Neue Over-Headset-Kopfhörer von Baseus bieten Raumklang-Audio und unterdrücken Störgeräusche um rund 96 Prozent.

6 Tagen ago

Microsoft steigert Umsatz und Gewinn im ersten Fiskalquartal

Das stärkste Wachstum verbucht die Cloud-Sparte. Microsoft verpasst bei der Umsatzprognose für das laufende Quartal…

6 Tagen ago

Bezahlkarten: Infineon verspricht weniger Plastikmüll

Ein Coil-on-Module-Package integriert Chip und Antenne, was den Kartenkörper fast vollständig recycelbar machen soll.

6 Tagen ago

Firefox 132 schließt elf Sicherheitslücken

Mindestens eine Anfälligkeit erlaubt das Einschleusen von Schadcode. Außerdem erweitern die Entwickler den Support für…

6 Tagen ago