Newsgroup: it.comp.lang.visual-basic
Titolo: VB6:  Devo appoggiarmi alla rete EDONKEY forse un po [OT] ma ci provo !

Sto creando un nuovo client P2P sperimentale, che si dovrebbe appoggiare a 
un qualsiasi server Edonkey ad esempio RazorBack, io mi sono connesso con il 
WinSock alla porta tcp del server, ma il problema è questo, ora che la 
connessione c'è cosa devo inviare ad esempio per fare una ricerca ?
Non ho trovato spiegazioni sul funzionamento, ho googlato come un dannato ma 
non trovo nulla a riguardo, ne in italiano, ne in inglese, allora mi chiedo 
questo:
(1) Gli sviluppatori di Emule dove hanno trovato queste info, dato che in 
origine la rete era nata per il client EDonkey che non è un OPEN SOURCE ?
(2) Cosa devo inviare esattamente sulla porta TCP del server ? (ho provato 
con HELP, HELLO tutti seguiti da cr,lf e come  risposta il server mi butta 
giu.)
(3) Le eventuali risposte mi perverranno sulla stessa porta in "DataArrival" 
o su un'altra, magari UDP ?
Sò che sembro un pò OT, ma sul NG ''it.comp.software.p2p'' nessuno parla di 
sviluppo, ma tutti si limitano a parlare di client già esistenti e 
funzionanti
e poichè sto realizzando tutto questo in VB6 mi è sembrato più ragionevole 
postare qui, insomma mi sembra di essere piu [OT] dall'altra parte, visto 
che di programmazione non se ne parla proprio.
Grazie a chi mi indicherà qualche link tratti al dettaglio a livello 
WinSock, meglio se un testo in italiano, ma in mancanza va bene anche in 
inglese.
Ivan.

Nessuno č in grado di aiutarmi ?
Ivan.

Beh fondametalmente potresti leggerti il codice di Emule e vedere cosa gli
spedisce :-)
Ciao Giuseppe


Ciao Giuseppe, ci ho provato, ma il C++ è troppo enigmatico da comprendere 
per me, ci avevo già pensato ma non ci ho capito nulla, e sopratutto non sò 
dove sia la parte di codice che si occupa di questo aspetto, tu saresti in 
grado di farlo e passarmi i suggerimenti ?
Ivan

Onestamente è un brutto periodo al lavoro e quindi non ho molto tempo, ma
posso darti una dritta :-)
prendi vb con 2 winsock
uno lo metti su di una porta ad ascoltare e ci fai collegare il tuo mulo
[facendogli credere che sia un proxy]
l'altra la colleghi al server al quale ti vuoi collegare...
prendi i dati da uno e li mandi all'altro e viceversa
i dati che si cambiano li metti in un file che ti andrai a pulciare dopo...
(spera che le trasmissioni siano in chiaro :-))
Byez Giuseppe

 Ivan.
vedo il messaggio parzialmente non ho capito cosa vuoi!
cmq....
se cerchi info sul protocollo edonkey...a sniffare le comunicazioni capirai
poco!
tie
http://www.cs.huji.ac.il/labs/danss/presentations/emule.pdf
questo è il protocollo di emule...è una bella guida di riferimento!
guarda anche
http://www.cs.huji.ac.il/labs/danss/
inoltre
http://it.wikipedia.org/wiki/EDonkey2000
anche se funziona meglio quella inglese
http://en.wikipedia.org/wiki/EDonkey2000
http://en.wikipedia.org/wiki/EDonkey_Network
http://prdownloads.sourceforge.net/pdonkey/eDonkey-protocol-0.6.2.html
una ultima considerazione
Come vedrai...benchè non sia una rete criptata....
non ti aspettare di veder passare "SENDMEsignoredeglianelliTO12.123.42.26"
arriveranno ai vari client messaggi che hanno anche bit o byte significativi
In vb sopratutto se non sei esperto è un macello usare questi cosi...
in C è molto più facile...con le struct poi...quasi banale... inviare una
sequenza di byte "che voglion dire molte cose"!
Inoltre hai librerie che gestiscono molto bene i socket...
Paradossalmente da quel poco che ho visto del coso
sembrerebbe a prima vista più "agevole" usare il NET che ti permettere di
spippolare parecchio il winsock...e di controllare i singoli bit (o dico una
cazzata??? su MSDN ci sono esempi addirittura di BitShift in 
vb.net
)
Le prestazioni?
beh...non so che domanda avevi fatto....ma sicuramente lente devi uare il C
per quelle!
Per trattare "comunicazioni" siccome si opera su pacchetti di byte...su
header...su flag...il C c'è pipato parecchio!!!