यह एक साधारण टीसीपी सर्वर है। प्रोग्राम समाप्त होने पर मैं सॉकेट को कैसे बंद कर सकता हूं? मैंने कोशिश/अंततः उपयोग किया है और सॉकेट को बंद करने का प्रयास किया है। लेकिन जब मैं प्रोग्राम से बाहर निकलता हूं तो अंत में यह ब्लॉक नहीं चलाता है।मैं सॉकेट को उचित तरीके से कैसे बंद कर सकता हूं?
किसी को भी सही तरीके से सॉकेट को बंद करने के बारे में विचार हो सकता है?
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!");
}
अपने अंत में ब्लॉक, या अब जावा 7 के साथ आप कोशिश के साथ-संसाधनों ब्लॉक का उपयोग कर सकते हैं, और यह आप के लिए उन्हें बंद हो जाएगा में सॉकेट 'पास()' विधि कॉल। http://www.javacodegeeks.com/2011/07/java-7-try-with-resources-explained.html –
'सर्वर (सॉकेट' कन्स्ट्रक्टर फेंकने के मामले में आपको 'क्लोज़()' को कॉल करने से पहले एक शून्य जांच की भी आवश्यकता है अपवाद। – unholysampler
@ किट हो, एप्लिकेशन कैसे समाप्त हो गया है? – mre