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


Themenseiten: Anwendungsentwicklung, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Java-Streams: So lassen sich I/O-Funktionen per Fernzugriff nutzen

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *