Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > java.nio.channels


Автор: altarasjuk 12.5.2003, 13:26
Привет!
К серверу подрубается клиент. туда - сюда, потом клиент обрывает коннект, но селектор возвращает SelectionKey этого коннекта, и соответственно при попытке работать с ним получаю Exception.
Подскажите, плиз, как проверить закрыт ли Channel с другой стороны.

Вот код:
[CODE]
ServerSocketChannel serverChannel = ServerSocketChannel.open();
ServerSocket serverSocket = serverChannel.socket();
Selector selector = Selector.open();
serverSocket.bind(new InetSocketAddress(PORT));
serverChannel.configureBlocking(false);
serverChannel.register(selector, SelectionKey.OP_ACCEPT);
while (true) {
int n = selector.select();
Iterator it = selector.selectedKeys().iterator();
while (it.hasNext()) {
SelectionKey key = (SelectionKey) it.next();
if (key.isAcceptable()) {
...................................
}
if (key.isReadable()) {
...................................
}
it.remove();
}
}

Автор: DarkDS 12.5.2003, 14:10
А Эксепшин какой?

Автор: altarasjuk 12.5.2003, 16:50
да нечто вроде IOException

Автор: DarkDS 12.5.2003, 17:27
тогда эта...
key.isConnectable()
или как вариант
key.channel().isOpen()

Автор: altarasjuk 12.5.2003, 19:15
сенкю smile.gif

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)