|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Sep 1999
Città: Pistoia
Messaggi: 618
|
[Messenger] Trasferimento file
Mi stavo chiedendo come i vari messenger (windows live,skype ecc) implementino il trasferimento di file.
Avevo realizzato in java una chat client-server multi.. con trasferimento di file 1 ad 1... La chat testuale è realizzata tramite server.. gli utenti scrivono al server e quest'ultimo lo rimanda agli altri... Il trasferimento l'avevo fatto con una connessione diretta tra chi passa il file a chi lo riceve, creando una nuova socket tra di loro.. Solo che il mittente del file (ServerSocket) se coperto da router deve avere una porta aperta... Ma questo su msn nn succede.. Chi ha un router può tranquillamente mandare file senza toccare il router.. Come viene realizzato allora il tutto ? |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Apr 2008
Messaggi: 181
|
E' come la chat testuale, il server si occupa di fare da tramite
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Sep 1999
Città: Pistoia
Messaggi: 618
|
Cioè il mittente del file lo manda al server che a sua volta lo manda al destinatario ?... ma serve necessariamente un server buono in up e down.. xkè c'è un doppio upload..
E poi provando con dei programmi come wireshark quando su msn passo un file mi arrivano pacchetti con l'ip del destinario.. xciò ho pensato ke la connessione sia diretta per il trasferimento dei file.. |
|
|
|
|
|
#4 | |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
so di una tecnica denominata Hole Punching che però non credo sia usata da MSN, anche perché potrebbe non funzionare sempre; comunque a grandi linee funziona così: supponi che A voglia connettersi a B e che B sia dietro NAT; entrambi A e B si connettono ad un server e in questo modo nella tabella NAT di B viene creata un'entry che permette al router di indirizzare a B tutti i pacchetti provenienti dal server; questa entry viene sfruttata da A (tramite spoofing) per inviare pacchetti a B, di conseguenza A può inviare dati a B senza farli passare per il server. ulteriori dettagli non me li ricordo, fai una ricerca su Wikipedia; comunque il motivo percui la cosa potrebbe non funzionare è che la NAT non è illimitata, e anzi nei routers casalinghi è piuttosto limitata, e quindi non è possibile stabilire troppe connessioni in questa maniera; credo che già eMule e chissà quanti altri sistemi di filesharing utilizzino questa tecnica, ed in più lo fanno anche i client VOIP. |
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Sep 1999
Città: Pistoia
Messaggi: 618
|
Ok .. mi informerò su questa parte...
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:26.




















