diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/Multiplayer/Server.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/Multiplayer/Server.java index 19c96a42a10b8824007c23cfff9468781493b9b7..8b49dfb665922650764640de6fee1bd1dc543b56 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Model/Multiplayer/Server.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/Multiplayer/Server.java @@ -46,16 +46,26 @@ public class Server { public void startServer() throws IOException { Server server = new Server(); log.info("server starting..."); - server.start(ipaddress,4444); + server.start(4444); } - public void start(String host_ip, int port) throws IOException { + public void start(int port) throws IOException { serverSocket = new ServerSocket(port); log.info("server started!"); started = true; - while (true){ - new ServerHandler(serverSocket.accept()).start(); - } + + log.info("server accepting Thread starting..."); + Thread serverThread = new Thread(() -> { + while (true) { + try { + new ServerHandler(serverSocket.accept()).start(); + } catch (IOException e) { + e.printStackTrace(); + } + } + }); + serverThread.start(); + log.info("requests accepting Thread started!"); } private static class ServerHandler extends Thread { diff --git a/src/test/java/de/hdm_stuttgart/battlearena/Model/Multiplayer/ServerTest.java b/src/test/java/de/hdm_stuttgart/battlearena/Model/Multiplayer/ServerTest.java new file mode 100644 index 0000000000000000000000000000000000000000..227f1b25fc19e1fd523779d0e207f1220c076c4b --- /dev/null +++ b/src/test/java/de/hdm_stuttgart/battlearena/Model/Multiplayer/ServerTest.java @@ -0,0 +1,37 @@ +package de.hdm_stuttgart.battlearena.Model.Multiplayer; + +import org.junit.jupiter.api.Test; + +import java.io.IOException; +import java.net.ServerSocket; + +import static org.junit.jupiter.api.Assertions.*; + +class ServerTest { + + private static String ipaddress = "localhost"; + private ServerSocket serverSocket; + private int port = 4444; + private boolean started = false; + + @Test + void startServer() throws IOException { + Server server = new Server(); + server.start(port); + assertTrue(server.isStarted()); + } + + @Test + void stopServer() { + + try { + //start Server somehow so that serverSocket is not null + + serverSocket.close(); // Close the server socket to break out of accept() in the main thread + started = false; + assertFalse(started); + } catch (IOException e) { + + } + } +} \ No newline at end of file