2016-12-13 3 views
0

Ich arbeite mit Java Selektoren in NIO. Ich registriere meinen Auswahlschlüssel/Interessenschlüssel mit den bestimmten Kanälen und Selektoren. Jetzt ist es meine Anforderung, zwei oder mehr Interessensätze für einen bestimmten Selektor zu haben.Registrieren mehrere SelectionKey

Was habe ich zwei selectionkeys machen mit verschiedenen Auswahlmöglichkeiten wie folgt:

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(); 
    } 

Meine Frage ist, gibt es eine Weise, die ich vermeiden können zwei diffrent Schlüssel?

Antwort

0

können Sie binär oder die Schlüssel zusammen ein einziges Interesse zu schaffen:

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

Der häufigere Name ist „bitweise oder“ https://en.wikipedia.org/wiki/Bitwise_operation#OR –

Verwandte Themen