|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
|
P2p
Come si puo impostare un protocollo p2p??
Vorrei scrivermene uno in C++. Avete link in proposito??? Tnk 10000000000
__________________
Gnu/Linux User
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ricordati che comunque c'è sempre un server di riferimento... Il server di riferimento non dovrà far altro che distribuire gli indirizzi dei vari utenti richiesti (ad esempio il risultato di una ricerca)...
Dopo lo scambio dei dati avviene direttamente fra gli utenti (anche se il server di riferimento è disconnesso)... |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
|
Quote:
spiegati un po meglio che sono gnucco(a livello teoria)
__________________
Gnu/Linux User
|
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Anzi...si può rendere ancora minore l'intervento del server...in questo modo...
A B C D sono client... S è il server... 1,2,3,4....etc etc sono le varie connessioni... :xxxx è una data porta in ascolto da un lato (che assegnerai sopra la 1024)... Ovviamente la freccia serve per dire chi invia dati a chi... Connessione iniziale, S tiene ovviamente traccia di tutti i client (tiene aperto il socket creato da questa connessione): A---1--->S:1 B---2--->S:1 C---3--->S:1 D---4--->S:1 A vuole fare una ricerca ed invia i criteri di ricerca a S: A---5--->S:2 (questa connessione termina subito, la lasciamo per le richieste, per semplificare) Il server invia i criteri di ricerca e lo stesso IP di A a tutti i client (compreso A, una specie di conferma per A che la sua ricerca sta venendo trattata, rende anche il tutto più semplice): S:1---1--->A S:1---2--->B S:1---3--->C S:1---4--->D Ora tutti i client hanno l'IP di A ed inviano i risultato della ricerca su una data porta che deve restare aperta, in attesa di connessione, sul client...mettiamo che B e C forniscano risultati validi per la ricerca: B---6--->A:2 C---7--->A:2 Le connessioni 6 e 7 vengono chiuse... Mettiamo che B abbia il materiale cercato, A richiede il materiale a B su una porta equivalente a quella sopra, B gli invia il materiale: A---8--->B:2 Nota che la porta 2 potrobbe essere diversa per ogni client, basta comunicarla nella richiesta di ricerca al server, che poi la comunicherà anche agli altri client... Quando i client si connetteranno all'altro client per inviargli i risultati della ricerca, comunicheranno anche la porta a cui si dovrà connettere A per scaricare quel materiale Ecco concluso... |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:32.


















