After you have interacted with various clients/servers in Python, you will be keen to create your own custom clients and servers for any protocol of your choice. Python provides a good coverage on the low-level networking interface. It all starts with BSD socket interface. As you can assume, Python has a socket
module that gives you the necessary functionality to work with the socket Interface. If you have ever done socket programming in any other language like C/C++, you will love the Python socket
module.
In this chapter, we will explore the socket module by creating a diverse range of Python scripts.
The following are the highlights of this chapter:
Basics of sockets
Working with TCP sockets
Working with UDP sockets
TCP port forwarding
Non-blocking socket I/O
Securing sockets with SSL/TLS
Creating custom SSL client/server