Rechnernetze
Home Nach oben

Server

Ein Server benötigt in Java zur Angabe der Verbindungsparameter lediglich die Portnummer, unter der er auf eine Anfrage wartet. 

ServerSocket server = new ServerSocket(port);

Dann muss der Server auf eine Verbindungsanforderung warten, welche wie beim Client vom Typ Socket ist. 

Socket client = server.accept();
...
client.close();

Es müssen wieder entsprechende Objekte für die Ein- und Ausgabe erzeugt werden:

BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
PrintWriter out = new PrintWriter(new OutputStreamWriter(client.getOutputStream()));

 Die eigentlich Ein- und Ausgabe erfolgt dann wie das Lesen und Schreiben von Dateien:

out.print("This is a respond from your server\n");
out.flush();
line = in.readLine();

Wenn die Eingabe beendet ist (weil die Verbindung abgebrochen wurde), wird auf in.readLine() ein Null-Pointer zurückgegeben.

Die Daten sind in der Regel Bytes (in Java in der Regel durch die Stream-Klassen behandelt). Durch die Klasse InputStreamReader, OutputStreamWriter werden diese in Unicode-Zeichen umgewandelt bzw. von Unicode-Zeichen in Bytes, so dass sie auf dem Datentyp String bereitgestellt werden (in Java in der Regel durch die Reader/Writer-Klassen behandelt).