Đây là một máy chủ TCP đơn giản. Làm thế nào tôi có thể đóng socket khi chương trình kết thúc? Tôi đã sử dụng thử/cuối cùng và cố gắng đóng ổ cắm. Nhưng nó không chạy khối cuối cùng khi tôi thoát khỏi chương trình.Làm cách nào để đóng ổ cắm theo cách phù hợp?
Bất kỳ ai cũng có thể có ý tưởng về cách đóng ổ cắm theo cách phù hợp?
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!");
}
gọi các ổ cắm 'close() 'phương pháp trong khối finally của bạn, hoặc bây giờ với java 7 bạn có thể sử dụng các khối try-với-nguồn lực, và nó sẽ đóng chúng cho bạn. http://www.javacodegeeks.com/2011/07/java-7-try-with-resources-explained.html –
Bạn cũng cần kiểm tra rỗng trước khi gọi 'close()' trong trường hợp hàm tạo 'ServerSocket' ném một ngoại lệ. – unholysampler
@Kit Ho, Đơn đăng ký bị chấm dứt như thế nào? – mre