From d86712952b3e00533350aba0e261b65d6d0fc4e2 Mon Sep 17 00:00:00 2001 From: 0qln <0qln@proton.me> Date: Thu, 13 Nov 2025 09:39:31 +0100 Subject: [PATCH] praktikum-5/aufgabe-4 --- .envrc | 1 + .gitignore | 1 + build.xml | 1 + praktikum-5/aufgabe4/Client.java | 53 ++++++++++++++++++++++++++++++++ praktikum-5/aufgabe4/Server.java | 51 ++++++++++++++++++++++++++++++ 5 files changed, 107 insertions(+) create mode 100644 .envrc create mode 100644 praktikum-5/aufgabe4/Client.java create mode 100644 praktikum-5/aufgabe4/Server.java diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..3550a30 --- /dev/null +++ b/.envrc @@ -0,0 +1 @@ +use flake diff --git a/.gitignore b/.gitignore index 8005ca5..b28e9a9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .jdtls build result +.direnv diff --git a/build.xml b/build.xml index f9af5f3..35833de 100644 --- a/build.xml +++ b/build.xml @@ -15,6 +15,7 @@ + diff --git a/praktikum-5/aufgabe4/Client.java b/praktikum-5/aufgabe4/Client.java new file mode 100644 index 0000000..495ba31 --- /dev/null +++ b/praktikum-5/aufgabe4/Client.java @@ -0,0 +1,53 @@ +package praktikum5.aufgabe4; + +import java.net.Socket; +import java.net.UnknownHostException; +import java.util.Scanner; +import java.io.OutputStreamWriter; +import java.io.IOException; +import java.io.InputStreamReader; + +public class Client { + private int port; + + public Client(int port) { + this.port = port; + } + + public String send(String msg) throws IOException { + var socket = new Socket("localhost", port); + var out = socket.getOutputStream(); + var in = socket.getInputStream(); + var reader = new InputStreamReader(in); + var writer = new OutputStreamWriter(out); + + writer.write(msg); + writer.flush(); + socket.shutdownOutput(); + + var response = ""; + var curr = reader.read(); + while (curr != -1) { + response += (char)curr; + curr = reader.read(); + } + reader.close(); + + return response; + } + + public static void main(String[] args) { + try { + int port = 4711; + var client = new Client(port); + var reader = new Scanner(System.in); + while (true) { + var msg = reader.nextLine(); + var response = client.send(msg); + System.out.println("Response: " + response); + } + } catch (Exception e) { + System.out.println(e); + } + } +} diff --git a/praktikum-5/aufgabe4/Server.java b/praktikum-5/aufgabe4/Server.java new file mode 100644 index 0000000..9ffd485 --- /dev/null +++ b/praktikum-5/aufgabe4/Server.java @@ -0,0 +1,51 @@ +package praktikum5.aufgabe4; + +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; +import java.net.ServerSocket; +import java.net.Socket; + +public class Server { + private ServerSocket socket; + + public Server(ServerSocket socket) { + this.socket = socket; + } + + public String echo() throws IOException { + var clientSocket = socket.accept(); + var in = clientSocket.getInputStream(); + var out = clientSocket.getOutputStream(); + var reader = new InputStreamReader(in); + var writer = new OutputStreamWriter(out); + + var msg = ""; + var curr = reader.read(); + while (curr != -1) { + msg += (char)curr; + curr = reader.read(); + } + + writer.write(msg); + writer.flush(); + writer.close(); + + return msg; + } + + public static void main(String[] args) { + try { + int port = 4711; + var socket = new ServerSocket(port); + var server = new Server(socket); + System.out.println("Listening on port " + port); + while (true) { + var msg = server.echo(); + System.out.println("Request: " + msg); + } + } catch (Exception e) { + System.out.println(e); + } + } +}