Transmogrifier: Java NIO and Non-Blocking IO
Mini-Course on how non-blocking network communication is done in Java. Level: difficult
Java.NIO has been with us since Java 1.4. Yep, that's over 15 years ago! And you still don't know how it works?
No worries, we're here to help :-)
In this mini-course, we start by learning how the "old" Java.IO works by writing three different servers.
We then move over to Java.NIO, which stands for "New IO", not as most people think "Non-blocking IO". Our first example uses a blocking Java.NIO server, to show this.
We then write a polling non-blocking Java.NIO server, which consumes a lot of CPU, but is able to support more sockets than the blocking varieties.
Finally, we write two slightly different non-blocking servers using the Selector to react to events that might happen on our sockets.
This mini-course is designed for you to code along. By the end, you should have a working understanding of how to communicate over sockets in a blocking and non-blocking fashion.