Add (v1) NetworkManager, Session and Transport #173

Merged
lars.winzer merged 26 commits from feat/network-manager into main 2026-03-13 15:49:56 +01:00
2 changed files with 49 additions and 0 deletions
Showing only changes of commit dac05de331 - Show all commits
@@ -1,8 +1,13 @@
package ch.unibas.dmi.dbis.cs108.casono.server; package ch.unibas.dmi.dbis.cs108.casono.server;
import ch.unibas.dmi.dbis.cs108.casono.server.network.NetworkManager;
public class ServerApp { public class ServerApp {
public static void start(String arg) { public static void start(String arg) {
int port = Integer.parseInt(arg); int port = Integer.parseInt(arg);
System.out.println("You've selected the server. It will accept connections at port " + port); System.out.println("You've selected the server. It will accept connections at port " + port);
NetworkManager networkManager = new NetworkManager(port);
networkManager.start();
} }
} }
@@ -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);
}
}
}