Я использую объект Java Socket в своем клиентском приложении. Мне нужно знать, когда линия к серверу разорвана или какое-либо событие привело к потере сокета.
Я вижу два метода:
- перехватывает SocketException при записи или чтении из сокета, учитывая, что эти исключения уничтожают сокет
- при перехвате этих исключений проверяет метод Socket.isClosed (), чтобы узнать, уничтожил ли он сокет
Гарантирует ли какой-либо из этих методов, что я буду знать, когда сокет не работает и не будет работать снова, даже если временная проблема в линии решена?
Можем ли мы исключить исключение (Socket), выдаваемое во время операции над сокетом, чтобы указать, что сокет мертв?
Есть ли лучший способ узнать это?