From 84bdcbc8973905a09cab06c6a29653595cd0cbba Mon Sep 17 00:00:00 2001 From: 3013050 <3013050@stud.hs-mannheim.de> Date: Wed, 15 Oct 2025 18:46:04 +0200 Subject: [PATCH] Added basic server structure --- vs.pu01/vs.pu01/src/main/java/vs/Server.java | 57 ++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 vs.pu01/vs.pu01/src/main/java/vs/Server.java diff --git a/vs.pu01/vs.pu01/src/main/java/vs/Server.java b/vs.pu01/vs.pu01/src/main/java/vs/Server.java new file mode 100644 index 0000000..accc6ae --- /dev/null +++ b/vs.pu01/vs.pu01/src/main/java/vs/Server.java @@ -0,0 +1,57 @@ +package vs; + +import java.io.IOException; +import java.net.DatagramPacket; +import java.net.DatagramSocket; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + + +public class Server { + private static final int BUFFSIZE = 512; + private static final ExecutorService executor = Executors.newFixedThreadPool(2); + + public interface PacketHandler { + void handlePacket(DatagramSocket socket, DatagramPacket packet, String serviceName); + } + + public static void main(String[] args) { + startSocket(new DiscoveryHandler(), 8888, "Discovery Service"); + startSocket(new SyslogHandler(), 8887, "Logging Service"); //? Port geraten idk + } + + private static void startSocket(PacketHandler handler, int port, String serviceName) { + executor.execute(() -> { + try (DatagramSocket socket = new DatagramSocket(port)) { + System.out.println(serviceName + " listening on port " + port); + byte[] buffer = new byte[BUFFSIZE]; //? Maybe andere Größe + + while (true) { + DatagramPacket packetIn = new DatagramPacket(buffer, BUFFSIZE); //? Nicht sicher ob die Arguments richtig sind + socket.receive(packetIn); + + handler.handlePacket(socket, packetIn, serviceName); + } + } catch (IOException e) { + //? Maybe besseres Error handling + System.err.println(serviceName + " error: " + e.getMessage()); + } + }); + } + + + static class SyslogHandler implements PacketHandler { + @Override + public void handlePacket(DatagramSocket socket, DatagramPacket packet, String serviceName) { + + } + } + + static class DiscoveryHandler implements PacketHandler { + @Override + public void handlePacket(DatagramSocket socket, DatagramPacket packet, String serviceName) { + + } + } +} +