Writing a non-blocking TCP server/client application: Provide a detailed example (theory and code) of a non-blocking TCP server/client application.