According to https://docs.oracle.com/javase/7/docs/api/java/nio/channels/SelectionKey.html#OP_READ
Suppose that a selection key's interest set contains OP_READ at the start of a selection operation. If the selector detects that the corresponding channel is ready for reading, has reached end-of-stream, has been remotely shut down for further reading, or has an error pending, then it will add OP_READ to the key's ready-operation set and add the key to its selected-key set.
What is the condition for a SocketChannel to be ready for reading?
How to explicitly make it ready for reading?
Thanks!!!