In this chapter, we reviewed the socket module for implementing client-server architectures in Python with the TCP and UDP protocols.We also reviewed the main functions and methods for resolving IP address from domains and vice versa. Finally, we implemented practical use cases, such as port scanning with sockets and how to manage exceptions when an error is produced.
In the next chapter, we will explore http requests packages for working with Python, the REST API, and authentication in servers.