life (n.) - A sexually-transmitted, terminal disease.

Netcat is a pretty nice piece of software. Because of its simplicity, it is very versatile. For sending a single file inside the local network, I can just use

cat somefile.file | netcat -l -p 13337 -q 0

on the server side and then

netcat server 13337 -q 0 > somefile.file

on the client side. If I do not want to remember the filename, or if I want to send directories, I can use

tar -cf - Directory/ | netcat -l -p 13337 -q 0

and on the other side

netcat server 13337 -q 0 | tar -xf -

For noobs who cannot use netcat, Wikipedia has a nice example of serving a single file which is downloadable via a webbrowser

{ echo -ne "HTTP/1.0 200 OK\r\n\r\n"; cat some.file; } | nc -l 8080

There are options for using UDP instead of TCP. But something that would be very desirable is a possibility to use STUN to create a p2p-connection. I do not think that netcat already has this possibility, but I am quite sure that something like that exists. Say, I give some Stun-Server, and the Program then passes some credentials to its stderr which I can then send (myself) to the receiver, which also passes them and creates a connection via UDP, and a bidirectional stream then. Since netcat is so good because of its simplicity, such a "Stun Netcat" would be very nice for sending files, too.

One could even add a simple GUI, such that n00bs can use it. If something like that exists, please tell me.

Notice that I forgot to mention that "netcat" is called "nc" in some implementations, and "-q 0" is called "-c" (or completely different), depending on the implementation of netcat you have. Read the documentation for your implementation, in case of doubt.