Как обнаружить ошибку соединения на канале NIO - PullRequest
3 голосов
/ 13 января 2012

У меня есть ситуация, когда у меня есть несколько подключений к нескольким серверам, и я хочу использовать NIO для этого.

Селектор скажет мне, когда есть данные для чтения. Есть ли способ узнать, когда соединение больше не подключено? Может быть, когда запись не удалась или перехватил исключение, которое выдается при какой-то операции? Мне нужно, чтобы это было неблокирующим, и я хочу сделать это таким образом, чтобы канал мог быть восстановлен (то есть установлен новый канал на тот же сервер) в случае сбоя соединения.

1 Ответ

3 голосов
/ 13 января 2012

Вы получите исключения для чтения / записи.

В других случаях, если канал зарегистрирован для чтения / записи на селекторе, когда канал прерывается, select () вернется, и клавиша выбора для канала укажет доступность для чтения / записи. Вы встретите исключение при следующем чтении / записи.

...