2013-08-02 1 views
0

Когда я получаю OP_CONNECT события я называю finishConnect() и обновлением interestOps:Java Неблокирующие каналы, селектор и interestOps

key.interestOps(key.interestOps() & ~SelectionKey.OP_CONNECT | SelectionKey.OP_READ); 

Но в следующей итерации (selector.select (..)) Я снова получить OP_CONNECT, хотя key.interestOps не содержит события OP_CONNECT. Что я делаю неправильно?

+0

В каком направлении вы получаете событие OP_CONNECT? Я знаю только один путь - от key.interestOps(), так что key.interestOps() & OP_CONNECT! = 0. Вы сказали, что 'key.interestOps не содержит OP_CONNECT', тогда откуда вы это событие? –

+0

Я использую key.isConnectable(). – herolover

ответ

0

Итак, все, что мне нужно - это удалить использованный SelectionKey из набора selectedKeys.