This video explains the code in the chat server with non-blocking sockets. The chat program example illustrates the following.
A layered architecture
Design and coding best practices
Thread usage on client and server when using non-blocking sockets
TCP communication with non-blocking sockets