diff --git a/src/main/java/it/polimi/ingsw/gc14/Network/Server/TCP/TCPServer.java b/src/main/java/it/polimi/ingsw/gc14/Network/Server/TCP/TCPServer.java index 4403d84..a2e6e80 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Network/Server/TCP/TCPServer.java +++ b/src/main/java/it/polimi/ingsw/gc14/Network/Server/TCP/TCPServer.java @@ -9,11 +9,16 @@ import java.util.List; public class TCPServer { int port = -1; + int ConnectedPlayers = 0; ServerSocket serverTCP = null; GameController gameController; private List clientHandlers; + private int getConnectedPlayers(){ + return ConnectedPlayers; + } + public void start(String args[]){ clientHandlers = new ArrayList<>(); @@ -25,19 +30,26 @@ public class TCPServer { e.printStackTrace(); return; } - System.out.println("Listening on port " + port); + System.out.println("Listening on port: " + port); while(true){ Socket clientSocket = null; - try { + try{ clientSocket = serverTCP.accept(); - } catch (IOException e) { + if(!gameController.addPlayer(clientSocket.getInputStream().toString()) || ConnectedPlayers >= clientHandlers.size()){ + clientSocket.close(); + System.out.println("Player already present or username is invalid. Connection terminated.\n"); + } + } + catch (IOException e){ e.printStackTrace(); } + System.out.println("Accepted"); - ClientHandler clientHandler = new ClientHandler(clientSocket, clientHandlers, this.gameController); + ConnectedPlayers++; + ClientHandler clientHandler = new ClientHandler(clientSocket, clientHandlers, gameController); clientHandlers.add(clientHandler); Thread t = new Thread(clientHandler); t.start();