Uhm...

Il client del PC in europa si connette...
Il client del PC in america fa lo stesso...

Il client del PC europeo invia dei dati al client del PC americano che li vede come risposta e quindi li accetta...
Il client del PC americano quindi invia il file richiesto al client del pc europeo che li vede come risposta e quindi lo accetta...

Il tutto senza dover leggere nulla dai pacchetti in entrata, ma solo come risposta dei pacchetti in uscita...
Se un programma leggesse i pacchetti in entrata sarebbe un server e non un client...



Piu' o meno dovrebbe essere cosi'