Вы должны вызвать метод socket.close (), если вы используете его правильно, все должно быть в порядке. Я не знаю, откуда взялась readLine (), поэтому я предполагаю, что это BufferedReader. Если вы посмотрите здесь в документации BufferedReader readLine ()
вы увидите, что он генерирует IOException, если есть ошибка, и если это конец потока, он вернет ноль.
так что вы должны сделать это:
try{
while(socket.isConnected()){
String line = in.readLine();
if(line==null){
//END OF STREAM
}
}
}catch(IOException e){
//deal with IOException here
}
В противном случае, я полагаю, что вы в настоящее время делаете жесткую петлю, как только другой конец отключается. Если вы попытаетесь распечатать сообщение из вышеприведенного кода, вы увидите, что оно выводит ноль без перерыва.