Какое исключение использовать для обнаружения хоста / ресивера? - PullRequest
0 голосов
/ 28 марта 2011

Я создал приложение TCP-сервер-клиент в Java, которое периодически обменивается сообщениями между ними. Как часть управления отказами, мне нужно обнаружить сбой любого хоста / клиента и затем вызвать мою пользовательскую функцию. Какое исключение в Java поймает только эту часть? Будет ли SocketException работать здесь? Я хочу вызывать управление сбоями только в случае отказа хоста / клиента, а не по любой другой проблеме.

1 Ответ

2 голосов
/ 28 марта 2011

Необходимо различать сервер, который выходит из строя (отключается, что приводит к IOException ), сервер недоступен при установлении соединения ( ConnectException ) и сервер отключается (представьте, что сетевой кабель отключен). Обычно это проявляется в SocketTimeoutException или аналогичном.

Я бы запустил процесс и попробовал все сценарии, которые вы ожидаете обработать. Вам придется работать с таймаутами иначе, чем с явными разъединениями и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...