2016-12-13 6 views
0

Я работаю с Java-селекторами в NIO. Я регистрирую ключ выбора/ключ интереса с конкретными каналами и селекторами. Теперь мое требование состоит в том, чтобы иметь два или более набора процентов для конкретного селектора.Зарегистрировать несколько SelectionKey

То, что я сделал это сделать два selectionkeys с различными вариантами выбора следующим образом:

try { 
     Selector selector = Selector.open(); 
     ServerSocketChannel channel = ServerSocketChannel.open(); 
     //FileChannel channel = new FileInputStream("").getChannel(); 

     channel.configureBlocking(false); 

     SelectionKey key1 = channel.register(selector, SelectionKey.OP_READ); 
     SelectionKey key2 = channel.register(selector, SelectionKey.OP_WRITE); 

    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

Мой вопрос, есть ли способ я могу избежать двух diffrent ключей?

ответ

0

Вы можете двоичном или клавиши вместе, чтобы создать единый интерес:

SelectionKey key = channel.register(selector, SelectionKey.OP_READ | SelectionKey.OP_WRITE); 
+1

Более общее название «побитовое или» https://en.wikipedia.org/wiki/Bitwise_operation#OR –