From dac05de331631b3708fc6081a308c8b1bd77562b Mon Sep 17 00:00:00 2001 From: Lars Simon Winzer Date: Wed, 11 Mar 2026 18:23:26 +0100 Subject: [PATCH] Add: Primitive first version of NetworkManager --- .../dbis/cs108/casono/server/ServerApp.java | 5 +++ .../casono/server/network/NetworkManager.java | 44 +++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/NetworkManager.java diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/ServerApp.java b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/ServerApp.java index 520dc6b..e7dd3f3 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/ServerApp.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/ServerApp.java @@ -1,8 +1,13 @@ package ch.unibas.dmi.dbis.cs108.casono.server; +import ch.unibas.dmi.dbis.cs108.casono.server.network.NetworkManager; + public class ServerApp { public static void start(String arg) { int port = Integer.parseInt(arg); System.out.println("You've selected the server. It will accept connections at port " + port); + + NetworkManager networkManager = new NetworkManager(port); + networkManager.start(); } } diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/NetworkManager.java b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/NetworkManager.java new file mode 100644 index 0000000..c23f20a --- /dev/null +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/NetworkManager.java @@ -0,0 +1,44 @@ +package ch.unibas.dmi.dbis.cs108.casono.server.network; + +import java.io.IOException; +import java.net.ServerSocket; +import java.net.Socket; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import ch.unibas.dmi.dbis.cs108.casono.common.network.Session; + +public class NetworkManager implements Runnable { + private Integer port; + private Logger logger; + private Thread thread; + private Boolean running; + + public NetworkManager(Integer port) { + this.port = port; + this.logger = LogManager.getLogger(NetworkManager.class); + this.thread = new Thread(this, "networkManager"); + this.running = true; + } + + public void start() { + logger.debug("Starting server at port " + port); + thread.start(); + } + + @Override + public void run() { + try (ServerSocket serverSocket = new ServerSocket(port)) { + while (running) { + Socket clientSocket = serverSocket.accept(); + + System.out.println("Accepted connection from " + clientSocket.getRemoteSocketAddress()); + clientSocket.close(); + } + + } catch (IOException e) { + logger.fatal(e); + } + } +}