if( inputByteBuffer==null || !inputByteBuffer.hasRemaining() ) {
inputByteBuffer = allocateBuffer();
}
IAsyncFuture future = socketChannel.read(inputByteBuffer);
future.addCompletionListener(this, null, false);
} catch (InterruptedException e) {
throw new InterruptedIOException();
}