public SocketDescriptor() {
    defaultSelectorProvider();
    try {
      channel = SocketChannel.open();
      channel.configureBlocking(false);
      writeSelector = Selector.open();
      readSelector = Selector.open();
    } catch(IOException e) {
      throw new SystemException(e.toString());
    }
    try {
      channel.register(writeSelector, SelectionKey.OP_WRITE);
      channel.register(readSelector, SelectionKey.OP_READ);
    } catch(java.nio.channels.ClosedChannelException e) {
      throw new SystemException(e.toString());
    }
  }