Practical guide to network programming with Python: TCP and UDP sockets, exception handling, multi-client server with threading.