Pour se connecter à un pc distant, tu peux utiliser les sockets.

Sinon il y a rsync qui fait tout ce que tu veux (ça peut éviter de réinventer la roue)