diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/Multiplayer/TestServer/ConnectionHandling.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/Multiplayer/TestServer/ConnectionHandling.java
index 7a61a050eaee14d35729fefa5f80878bada81523..804c6fef06093a095afb44198377632ee1f0f048 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Model/Multiplayer/TestServer/ConnectionHandling.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/Multiplayer/TestServer/ConnectionHandling.java
@@ -6,9 +6,13 @@ public class ConnectionHandling {
 
     public static void main(String[] args) throws IOException {
         Client client = new Client();
-        client.startConnection("localhost", 45371);
-        String response = client.sendMessage("hello");
-        System.out.println(response);
+        client.startConnection("localhost", 4444);
+        String resp1 = client.sendMessage("hello");
+        System.out.println(resp1);
 
+        Client client1 = new Client();
+        client1.startConnection("localhost", 4444);
+        String resp2 = client1.sendMessage("hello");
+        System.out.println(resp2);
     }
 }
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/Multiplayer/TestServer/Server.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/Multiplayer/TestServer/Server.java
index 5c14c36e43349a1a25cf964c99cd6d4132607373..1ebd2d287173c77bf821d5682ed2f74ecf29a262 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Model/Multiplayer/TestServer/Server.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/Multiplayer/TestServer/Server.java
@@ -8,48 +8,78 @@ import java.net.*;
 import java.io.*;
 
 public class Server {
-
-
     private ServerSocket serverSocket;
-    private Socket clientSocket;
-    private PrintWriter out;
-    private BufferedReader in;
-
-    private static final Logger log = LogManager.getLogger(ConnectionHandler.class);
 
     public static void main(String[] args) throws IOException {
         Server server = new Server();
-        server.start(45371);
+        server.start(4444);
     }
 
     public void start(int port) throws IOException {
         serverSocket = new ServerSocket(port);
-        clientSocket = serverSocket.accept();
-
-        //Data that is Outputed from the server
-        out = new PrintWriter(clientSocket.getOutputStream(), true);
-
-        //Data that is inputed to the server
-        in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
-
-        String greeting = in.readLine();
-
-        String message =  "Your Message was: " + greeting;
-
-        if ("hello".equals(greeting)) {
-            out.println("hello client " + message);
-        }
-        else {
-            out.println("unrecognised greeting " + message);
-        }
+        while (true)
+            new EchoClientHandler(serverSocket.accept()).start();
     }
 
     public void stop() throws IOException {
-        in.close();
-        out.close();
-        clientSocket.close();
         serverSocket.close();
     }
 
+    private static class EchoClientHandler extends Thread {
+        private Socket clientSocket;
+        private PrintWriter out;
+        private BufferedReader in;
 
+        public EchoClientHandler(Socket socket) {
+            this.clientSocket = socket;
+        }
+
+        public void run() {
+            try {
+                out = new PrintWriter(clientSocket.getOutputStream(), true);
+            } catch (IOException e) {
+                throw new RuntimeException(e);
+            }
+            try {
+                in = new BufferedReader(
+                        new InputStreamReader(clientSocket.getInputStream()));
+            } catch (IOException e) {
+                throw new RuntimeException(e);
+            }
+
+            String inputLine;
+
+            try {
+                while ((inputLine = in.readLine()) != null) {
+                    System.out.println("Received message from client: " + inputLine);
+                    try {
+                        if ((inputLine = in.readLine()) == null) break;
+                    } catch (IOException e) {
+                        throw new RuntimeException(e);
+                    }
+                    if (".".equals(inputLine)) {
+                        out.println("bye");
+                        break;
+                    }
+                    out.println(inputLine);
+                    out.flush();
+                }
+            } catch (IOException e) {
+                throw new RuntimeException(e);
+            }
+
+
+            try {
+                in.close();
+            } catch (IOException e) {
+                throw new RuntimeException(e);
+            }
+            out.close();
+            try {
+                clientSocket.close();
+            } catch (IOException e) {
+                throw new RuntimeException(e);
+            }
+        }
+    }
 }