private static void handleConnectingPlayers(
			Collection<Integer> availablePortNumbers,
			ServerSocket initialConnectionServerSocket) throws Exception {
		
    	Socket initialConnectionClientSocket = initialConnectionServerSocket.accept();
		
		Set<String> currentlyAvailableGames = gameNameToNumberAvailableSeats.keySet();
		PrintWriter initialConnectionPrintWriter = new PrintWriter(initialConnectionClientSocket.getOutputStream(), true);
		initialConnectionPrintWriter.println("GameChoices+++"+currentAvailableGamesInfo(currentlyAvailableGames));
		
		BufferedReader initialConnectionPrintReader = new BufferedReader(
				new InputStreamReader(initialConnectionClientSocket.getInputStream()));
		String gameNameInfo = initialConnectionPrintReader.readLine();
		
		if(gameNameInfo.equals("ClearAllInactivePorts")){
			clearAllInactiveGames(availablePortNumbers);
			return;
		}
		
		if(currentlyAvailableGames.contains(gameNameInfo)){
			joinExistingGame(availablePortNumbers,
					initialConnectionPrintWriter, gameNameInfo);
			
			if(gameNameToNumberAvailableSeats.get(gameNameInfo) == 0){
				startGame(gameNameInfo);
			}
			
			
		}else{ //Creating new game
			//First check to see if this was explicitly declared as a "new game" and strip off the "NEW GAME" part as needed:
			String[] definerAndName = gameNameInfo.split(";;;;;");
			if(definerAndName.length > 1){ //Specified as a "NEW GAME" explicitly
				gameNameInfo = definerAndName[1]; //TODO in future, might need to check index 0 to see if its "NEW GAME" or not
				while(currentlyAvailableGames.contains(gameNameInfo)){
					gameNameInfo += "I"; //Adding onto end of name to distinguish the games
				}
				
			}
			createNewGame(availablePortNumbers, initialConnectionPrintWriter,
					initialConnectionPrintReader, gameNameInfo);
		}
	}