Socat (SOcket CAT) is a command-line utility that establishes two bidirectional byte streams and transfers data between them. It’s a more versatile version of netcat.

Building your own socat involves working with TCP and UDP sockets, bidirectional data transfer, and various address types. It’s an excellent project for deepening your understanding of network programming and Unix I/O.

Build your own Socat is available with a project breakdown on Coding Challenges.