Я пытаюсь разобраться с клиентскими разъединениями в простом java-приложении, которое отправляет чат-сообщения с использованием клиента и сервера.Серверный сокет Входной поток, возвращающий значение null перед отключением
Вот проблема
public void run() {
try {
System.out.println("Client Connected");
String inputLine;
while ((inputLine = in.readLine()) != null) {
System.out.println(inputLine);
theServer.handle(inputLine, this);
}
out.close();
in.close();
socket.close();
System.out.println("Client Disconnected");
} catch (Exception e) {
e.printStackTrace();
}
}
С помощью этого кода здесь, он запускает время цикла, а строка ввода не является нулевым. Если он равен нулю, он остановит цикл и закроет потоки ввода и вывода, а также сокет. Теперь это все работает нормально, кроме выхода в консоли заключается в следующем:
Client Connected
null
Client(/127.0.0.1): null
null
Client(/127.0.0.1): null
null
Client(/127.0.0.1): null
null
Client(/127.0.0.1): null
Client Disconnected
Я не могу понять, почему цикл будет держать цикл, даже если вход нулевой !! Кажется, требуется некоторое время, чтобы понять, что перед запуском цикла он равен нулю. Мне нужно, чтобы он спустился без промедления.
Любая помощь будет оценена,
shadrxninga
В связи с этим: \t \t in = new BufferedReader (новый InputStreamReader (socket.getInputStream())); – shadrx
Я знаю, что то, что я сказал, невозможно, это просто то, что, кажется, происходит. Код выполняется, так как код печатает информацию на консоли. – shadrx
Итак - единственное решение, которое, как я думаю, будет работать, - это первое, что вы мне дали. – shadrx