For making backups, it is a common problem to copy a large tar file from one machine to another in the same network. Normally I would use commands like:
SourceServer> ncat -l --send-only 1701 < backup.tgz DestinClient> ncat SourceServer 1701 > backup.tgz
Then compare the checksums:
DestinClient> cksum backup.tgz
This is taken from the NMap group. Recently a problem came up where the client did not have ncat, I thought to use Pharo instead so the client code is below (lifted from the SocketStream class comment):
| file socketStream result blocksize writeStream | blocksize := 1024. file := File openForWriteFileNamed: 'backup.tgz'. [ socketStream := SocketStream openConnectionToHostNamed: '127.0.0.1' port: 1701. [ [ socketStream binary. [ socketStream atEnd ] whileFalse: [ result := socketStream next: blocksize. file nextPutAll: result ] ] ensure: [ socketStream close ] ] on: ConnectionTimedOut do: [:ex | Transcript show: ex asString; cr. ex resume] ] ensure: [ file close ]
The address '127.0.0.1'
needs to be changed to the IP where the ncat listener is already running once local testing is done.