2013-10-01 4 views
0

Я очень новичок в программировании на уровне гнезд NIO и нуждаюсь в помощи здесь. Моя заявка основана на NIO socket, где используется Selectors для неблокирующего канала.Java NIO SocketChannel isOpen и isConnected методы

Хотел узнать, в каких сценариях isOpen() и isConnected() методы SocketChannel могут возвращать false.

Как и перед записью данных в сокет, мы проверяем два вышеуказанных метода. и, наблюдая с перерывами, эти методы возвращают false.

+0

Они не должны прерываться при заданном соединении. Я предлагаю вам снова прочитать javadocs для этих методов;) –

ответ

0

isOpen() возвращает true, пока вы его не закроете.

isConnected() возвращает true, если вы подключили или приняли канал.

Тестирование этих данных постоянно указывает на то, что вы не понимаете, для чего они предназначены. Приложение должно уже знать состояние, в которое оно установило свои собственные соединения. Возможно, вы думаете, что они указывают состояние соединения , и что они меняются, когда партнер отключается. Они этого не делают.

Как и перед записью данных в сокет, мы проверяем два вышеуказанных метода. и, наблюдая с перерывами, эти методы возвращают false.

Я сомневаюсь. Если вы видите это, у вас есть ошибки в коде.

Смежные вопросы