As I'd like to try and implement a basic TCP connection with Telegram servers (using MTProto), I started reading about the Java NIO classes. However, I got "stuck" trying to understand the point of Selectors for a client.
A selector supports key-based, non-blocking, multiplexed I/O. In other words, selectors enable you to perform I/O through multiple channels. (Java - The complete reference)
Being that TCP messages, as a stream, are always ordered, and that I will only open a single socket connection (a single SocketChannel), what is the point of using Selectors? I think there is no point, am I right?
If my self-answer is right, why not using blocking I/O directly?