netcat is called the "swiss army knife of networking". It is really a simple program. It allows you to open network sockets (UDP or TCP) and listen for connections or make connections when using TCP or just send and receive data when using a connectionless protocol like UDP. All input and output is done via standard in and standard out which makes it perfect for scripting.

Let's Play

simple udp test

on server: nc -u -l -p 1234	on client: nc -u localhost 1234
perform a network backup of a file
on server: nc -l -p 1234 > GPL.bz2   on client: cat GPL | bzip2 | nc localhost 1234