Я использую этот код для обнаружения, если сервер не подключен
private boolean isServerListening() {
try {
s = new Socket("localhost", PORT);
return true;
} catch (IOException e) {
System.out.println(e);
return false;
}
}
и Thread для обработки внезапно отключенного сервера
Thread checkServer = new Thread(() -> {
while (true) {
if (isServerListening()==false) {
JOptionPane.showMessageDialog(null, "Server is disconnected!");
System.exit(0);
}
}
});
Проблема:
- Я думаю, что метод занял слишком много времени (около 4 секунд) для выполнения и возврата. Так есть ли правильный способ?
- Независимо от того, подключен сервер или нет, это
Thread
по-прежнему показывают JOptionPane
и завершают свою программу. Я ошибаюсь в какой-то момент?