Почему так не проходить?
try(ServerSocket serverSocket = new ServerSocket(ConsoleHelper.readInt())) {
System.out.println("Server has started");
while (true){
try(Socket socket = serverSocket.accept()) {
Handler handler = new Handler(socket);
handler.start();
} catch (IOException e) {
e.printStackTrace();
}
}
} catch (IOException e) {
e.printStackTrace();
}
package com.javarush.task.task30.task3008;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
//а) Запрашивать порт сервера, используя ConsoleHelper.
//б) Создавать серверный сокет java.net.ServerSocket, используя порт из предыдущего пункта.
//в) Выводить сообщение, что сервер запущен.
//г) В бесконечном цикле слушать и принимать входящие сокетные соединения только что созданного серверного сокета.
//д) Создавать и запускать новый поток Handler, передавая в конструктор сокет из предыдущего пункта.
//е) После создания потока обработчика Handler переходить на новый шаг цикла.
//ж) Предусмотреть закрытие серверного сокета в случае возникновения исключения.
//з) Если исключение Exception все же произошло, поймать его и вывести сообщение об ошибке.
public static void main(String[] args) {
try(ServerSocket serverSocket = new ServerSocket(ConsoleHelper.readInt())) {
System.out.println("Server has started");
while (true){
try(Socket socket = serverSocket.accept()) {
Handler handler = new Handler(socket);
handler.start();
} catch (IOException e) {
e.printStackTrace();
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
private static class Handler extends Thread{
private Socket socket;
public Handler(Socket socket){
this.socket = socket;
}
}
}