Java-Beispiele – Beispiel für ServerSocket- und Socket-Kommunikation

Java-Beispiele

Das folgende Beispiel zeigt, wie der Client eine Nachricht an den Server sendet, der Server die Nachricht empfängt und die Ausgabe liest, sie dann an den Client schreibt und der Client die Ausgabe empfängt.

1. Serverseite einrichten

  • Der Server erstellt einen ServerSocket für die Kommunikation
  • Der Server erstellt einen Socket, um Client-Verbindungen zu akzeptieren
  • Einen IO-Eingabestream erstellen, um vom Client gesendete Daten zu lesen
  • Einen IO-Ausgabestream erstellen, um Datennachrichten an den Client zu senden

Serverseitiger Code:

Server.java-Datei

import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.ServerSocket; import java.net.Socket; public class Server { public static void main(String[] args) { try { ServerSocket ss = new ServerSocket(8888); System.out.println("Server wird gestartet...."); Socket s = ss.accept(); System.out.println("Client:"+s.getInetAddress().getLocalHost()+"Mit dem Server verbunden"); BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream())); //Lies die vom Client gesendete Nachricht String mess = br.readLine(); System.out.println("Client:"+mess); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream())); bw.write(mess+"\n"); bw.flush(); } catch (IOException e) { e.printStackTrace(); } } }

Die Ausgabe beim Ausführen des obigen Codes ist:

Start server....

2. Clientseite einrichten

  • Socket-Kommunikation erstellen, IP und Port des Kommunikationsservers festlegen
  • Einen IO-Ausgabestream erstellen, um Datennachrichten an den Server zu senden
  • Erstelle einen IO-Eingabestream, um vom Server gesendete Datennachrichten zu lesen

Clientseitiger Code:

Client.java-Datei

import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.net.Socket; import java.net.UnknownHostException; public class Client { public static void main(String[] args) { try { Socket s = new Socket("127.0.0.1",8888); //IO aufbauen InputStream is = s.getInputStream(); OutputStream os = s.getOutputStream(); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os)); //Eine Nachricht an die Serverseite senden bw.write("Die Kommunikation zwischen Client und Server testen; der Server empfängt die Nachricht und sendet sie an den Client zurück\n"); bw.flush(); //Die vom Server zurückgegebene Nachricht lesen BufferedReader br = new BufferedReader(new InputStreamReader(is)); String mess = br.readLine(); System.out.println("Server:"+mess); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }

Die Ausgabe beim Ausführen des obigen Codes ist:

Server: Testing communication between client and server; the server receives the message and returns it to the client.

Java-Beispiele

Andere Erweiterungen