diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Client/Client.java b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Client/Client.java index 3fe5c45..d64ab9e 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Client/Client.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Client/Client.java @@ -16,7 +16,11 @@ public class Client { this.socket = socket; this.out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); this.in = new BufferedReader((new InputStreamReader((socket.getInputStream())))); + this.userName = userName; + this.out.write(getUsername()); + this.out.newLine(); + this.out.flush(); } catch (IOException e) { e.printStackTrace(); closeEverything(socket, in, out); diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Server/ClientHandler.java b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Server/ClientHandler.java index e3f8bc1..2e19796 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Server/ClientHandler.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Server/ClientHandler.java @@ -11,7 +11,7 @@ public class ClientHandler implements Runnable { private BufferedReader in; private Socket socket; Scanner sc; - public static HashSet clientHandlers = new HashSet<>(); + public static HashSet connectedClients = new HashSet<>(); public static HashSet inGameClients = new HashSet<>(); public static HashSet ghostClients = new HashSet<>(); @@ -21,7 +21,7 @@ public class ClientHandler implements Runnable { this.out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); this.in = new BufferedReader((new InputStreamReader((socket.getInputStream())))); this.clientUserName = in.readLine(); - clientHandlers.add(this); + connectedClients.add(this); broadcastMessage("SERVER: " + clientUserName + " has joined the Server"); } catch (IOException e) { e.printStackTrace(); @@ -55,17 +55,15 @@ public class ClientHandler implements Runnable { } public void broadcastMessage(String msg) { - for (ClientHandler client : clientHandlers) { + for (ClientHandler client : connectedClients) { try { if(!client.clientUserName.equals((clientUserName))) { client.out.write(msg); - client.out.newLine(); - client.out.flush(); } else { client.out.write("Message: **" + msg + "** sent!"); - client.out.newLine(); - client.out.flush(); } + client.out.newLine(); + client.out.flush(); } catch (IOException e) { e.printStackTrace(); closeEverything(socket, in ,out); @@ -74,7 +72,7 @@ public class ClientHandler implements Runnable { } public void removeClientHandler() { - clientHandlers.remove(this); + connectedClients.remove(this); broadcastMessage("SERVER: " + clientUserName + " has left the server"); } diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Server/Server.java b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Server/Server.java index 6301e9b..b2cd806 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Server/Server.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Server/Server.java @@ -19,7 +19,7 @@ public class Server { public void startServer() { try { - System.out.println("Port 42069 open on "); + System.out.println("Port 42069 is open on " + this.serverSocket.getInetAddress()); while (!serverSocket.isClosed()) { Socket socket = serverSocket.accept(); ClientHandler nextClient = new ClientHandler(socket); diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Server/connectingLogik.java b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Server/connectingLogik.java new file mode 100644 index 0000000..e6dbd6c --- /dev/null +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Server/connectingLogik.java @@ -0,0 +1,8 @@ +package ch.unibas.dmi.dbis.cs108.Multiplayer.Server; + +/** + * Implements the communication protocol in the connecting phase. + * After this one can consider the server and client in session; + */ +public class connectingLogik { +} diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Server/sessionLogik.java b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Server/sessionLogik.java new file mode 100644 index 0000000..73696eb --- /dev/null +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Server/sessionLogik.java @@ -0,0 +1,4 @@ +package ch.unibas.dmi.dbis.cs108.Multiplayer.Server; + +public class sessionLogik { +}