Я хочу, чтобы сервер печатал на консоли, когда проигрыватель подключается через сокеты. Однако моя IDE лает на меня за попытку использовать System.out.println ("P1 Connected") внутри try-catch с ресурсами.
Я изучил проблему и обнаружил, что вызовы внутри try-catchулов с ресурсами должен реализовать закрытый. Хотя это имеет смысл, это блокировка вызовов, и я не могу найти другого способа обеспечить печать сразу после подключения игрока.
Я мог бы разбить его на два try-catch с ресурсами, однако я потерялссылка на клиентские сокеты для P1 и P2. Насколько мне известно, все мои операции с этими сокетами должны происходить в {} после try-catch, так как в противном случае они закрыты и из-за области действия к ним больше нельзя получить доступ.
//Setup the server socket for client one
try (
ServerSocket serverSocket = new ServerSocket(Integer.parseInt(args[1]));
Socket clientOne = serverSocket.accept();
BufferedReader clientOneIn = new BufferedReader(new InputStreamReader(clientOne.getInputStream()));
PrintWriter clientOneOut = new PrintWriter(clientOne.getOutputStream(), true);
System.out.println("Player one connected!");
Socket clientTwo = serverSocket.accept();
BufferedReader clientTwoIn = new BufferedReader(new InputStreamReader(clientTwo.getInputStream()));
PrintWriter clientTwoOut = new PrintWriter(clientTwo.getOutputStream(), true);
) {
} catch (IOException e) {
e.printStackTrace();
}