Heute lernst du:
Socket und ServerSocketAm Ende wirst du einfache Client-Server-Anwendungen in Java schreiben können.
Verbinde dich mit einem Server über Socket und sende Daten.
import java.io.*;
import java.net.*;
Socket socket = new Socket("localhost", 5000);
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
out.println("Hallo Server!");
socket.close();
Verwende ServerSocket, um auf Verbindungen zu warten.
import java.io.*;
import java.net.*;
ServerSocket server = new ServerSocket(5000);
System.out.println("Server gestartet, warte auf Client...");
Socket client = server.accept();
BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
String message = in.readLine();
System.out.println("Empfangen: " + message);
client.close();
server.close();
Du kannst PrintWriter und BufferedReader verwenden, um Nachrichten zu senden und zu empfangen.
PrintWriter out = new PrintWriter(client.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
out.println("Hallo!");
String response = in.readLine();
System.out.println("Server sagt: " + response);
import java.io.*;
import java.net.*;
Socket socket = new Socket("localhost", 5000);
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
out.println("Hallo Server!");
socket.close();
Erstelle ein einfaches Client-Server-Programm, bei dem der Server Nachrichten zurückschickt (Echo).
Schritte:
ServerSocket, der Clients akzeptiertBufferedReaderPrintWriter zurückSocket, der Nachrichten sendetBeispiel:
import java.io.*;
import java.net.*;
// Server
public class EchoServer {
public static void main(String[] args) throws IOException {
ServerSocket server = new ServerSocket(5000);
System.out.println("Server gestartet...");
Socket client = server.accept();
BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
PrintWriter out = new PrintWriter(client.getOutputStream(), true);
String message;
while((message = in.readLine()) != null) {
System.out.println("Empfangen: " + message);
out.println("Echo: " + message);
}
client.close();
server.close();
}
}
// Client
public class EchoClient {
public static void main(String[] args) throws IOException {
Socket socket = new Socket("localhost", 5000);
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out.println("Hallo Server!");
System.out.println(in.readLine());
socket.close();
}
}