und aus dem Chaos kam eine Stimme, und die Stimme sprach zu mir
"Lächle und sei fröhlich, denn es könnte schlimmer kommen."
und ich lächelte und war fröhlich
und es kam schlimmer.

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.