Netcat is seriously awesome, and still exists very much under the radar of a lot of people. I've used to to copy files around the planet, the datacenter, and the lab.
It excels at doing things "right now". If I have a terminal window open on a server in France and one in the US; then I can easily move that file. However, If I have to move my body to the target location before I can copy the file it doesn't work as well. (Need to jump through a few other hoops that make it more challenging.)
Protip: ALWAYS grab the hash of the file before you send it, and compare.
2nd Protip: Encrypt your file(s) before you send them.
Something like this is decent for moving a file at your leisure, or to give a copy to somebody else at their leisure.
Target PC opens a port and starts listening (outputting to file)
Sending machine establishes a connection to the listening port, and starts copying the file.
Example (hide a file transfer as DNS traffic)
Listening computer:
nc -l -u -p 53 > output.file
Sending computer:
cat original.file > nc -u [destination ip address] 53
In this case you'd be dumb not to encrypt the file before transit. And as I mentioned already make sure you have a hash of the original.
You can also use TCP. These are sneaky/simple ways to move files around. Downside: You need to poke a hole in a firewall, but options exist for that too.
ssh/scp downside: You need an account on target PC to connect to.
nc downside: you need an open port on the listening PC.
Most obviously, the same things as its disadvantages:) With nc, you don't have encryption or authentication, which is good - faster, no keys to set up, no fingerprints to accept - and terrible - no transport encryption, no data integrity verification, no access control except for at the network layer. Also, slight difference in how you use them: scp operates on files, nc on streams. But you can just pipe over SSH, so that's not a big difference IMO.
It excels at doing things "right now". If I have a terminal window open on a server in France and one in the US; then I can easily move that file. However, If I have to move my body to the target location before I can copy the file it doesn't work as well. (Need to jump through a few other hoops that make it more challenging.)
Protip: ALWAYS grab the hash of the file before you send it, and compare.
2nd Protip: Encrypt your file(s) before you send them.
Something like this is decent for moving a file at your leisure, or to give a copy to somebody else at their leisure.