A little book which introduces OpenBSD netcat:
Switch branches/tags
Nothing to show
Clone or download
Latest commit bddcc9c Sep 22, 2018
Failed to load latest commit information.
posts Initial commit Sep 22, 2018
LICENSE Initial commit Sep 22, 2018
README.md Initial commit Sep 22, 2018
SUMMARY.md Initial commit Sep 22, 2018


OpenBSD netcat demystified

Owing to its versatile functionalities, netcat earns the reputation as "TCP/IP Swiss army knife". For example, you can create a simple chat app using netcat:

(1) Open a terminal and input following command:

# nc -l 3003	

This means a netcat process will listen on 3003 port in this machine (the IP address of current machine is

(2) Connect aforemontioned netcat process in another machine, and send a greeting:

# nc 3003

Then in the first machine's terminal, you will see the "hello" text:

# nc -l 3003

A primitive chatroom is built successfully. Very cool! Isn't it? I think many people can't wait to explore more features of netcatnow. If you are among them, congratulations! This tutorial may be the correct place for you.

In the following parts, I will delve into OpenBSD's netcatcode to give a detailed anatomy of it. The reason of picking OpenBSD's netcat rather than others' is because its code repository is small (~2000 lines of code) and neat. Furthermore, I also hope this little book can assist you learn more socket programming knowledge not just grasping usage of netcat.

We're all set. Let's go!