Это простой TCP-сервер. Как я могу закрыть сокет, когда программа завершена? Я использую try/finally и пытаюсь закрыть сокет. Но при выходе из программы он не запускает блок finally.
Кто-нибудь может подумать о том, как правильно закрыть розетку?
try {
socket = new ServerSocket(port);
System.out.println("Server is starting on port " + port + " ...");
}catch (IOException e){
System.out.println("Error on socket creation!");
}
Socket connectionSocket = null;
try{
while(true){
try{
connectionSocket = socket.accept();
Thread t = new Thread(new ClientConnection(connectionSocket));
t.start();
}catch (IOException e) {
System.out.println("Error on accept socket!");
}
}
}finally{
this.socket.close();
System.out.println("The server is shut down!");
}