Como hago un p2p en Java???????

Iniciado por Jack1987, 5 Marzo 2009, 16:23 PM

0 Miembros y 1 Visitante están viendo este tema.

Jack1987

Hola a todos, necesito que alguien me diga como hacer un download p2p con java, y si hay libros o todo tipo de documentacion que me oriente, gracias.

genco

Cita de: Jack1987 en  5 Marzo 2009, 16:23 PM
Hola a todos, necesito que alguien me diga como hacer un download p2p con java, y si hay libros o todo tipo de documentacion que me oriente, gracias.


primero te recomiendo que investigues la arquitectura p2p, cada aplicacion es un cliente y un servidor a la vez, es decir que tienes que usar sockets

Ragnarok

Anda que no hay opciones en java como para tener que usar sockets.

Sé que apache tenía cosas para redes, aunque no sé si era en jakarta o en commons.

Aparte de eso puedes echarle un vistazo al código de Azureus Vuze, o cualquier otro P2P que conozcas en java, aunque sea para ver qué librerías usan y pueden facilitarte la vida.
No olvidéis leer las normas generales, además de las específicas de cada tablón.sgae, ladrones

Shrick

Haber primero y ante todo tienes que investigar como funciona un protocolo, mirate el FTP mismo, en el veras que las aplicaciones envian a traves de sockets mensajes, estos mensajes serviran para llamar a procedimientos.

Este podria ser un envio de mensajes para implementar la conexión entre clientes:

C1: ping C2
C2: OK
C1: get clients
C2: IP 68.76.254.23 100.234.34.22
C1: ping 68.76.254.23
C3 (68.76.254.23): OK
C1: ping 100.234.34.22
C4(100.234.34.22): OK

Tu para hacer esto tienes que combinar sockets con threads para hacer conexiones, recomiendo para transmisión de mensajes el TCP/IP (incluyendo hash de datos de archivo) y para envió de datos el UDP/IP.

No he profundizado demasiado pero esa es la idea, tienes que crearte un nuevo protocolo, te sera muy util el Wireshark, que te sniffa el tráfico de red y miras como se envia mensajes cuando te conectas a una web o entras en un FTP.
Ubuntu User
Pascal (2008/2009)
C/C++ (2009/¿?)
8080 Assembler (2009/2010)
MIPS I Assembler (2010/¿?)

Todo lo que yo haga o diga esta bajo:



No pertenece ni a mi ni a nadie :P .

Ragnarok

puff, tela para mirar wireshark.

Mejor busca librerías en java que te ayuden a hacer un p2p, porque a lo mejor está ya hecho. Hay librerías de tablas hash distribuidas y de montones de cosas. Y muchos p2p que son libres y están hechos en java...

Ya depende de cómo quieres que sea, si quieres intercambio de archivos Azureus es una buena opción, si quieres encontrarlos antes de intercambiarlos el protocolo de kademlia, etc.
No olvidéis leer las normas generales, además de las específicas de cada tablón.sgae, ladrones

Shrick

Estoy de acuerdo que es mejor usar una librería, para encapsular toda la parte complicada, pero ha mi manera de ver (ojala me equivoque), los P2P en general no tienen un código muy extenso y complicado para leer así como así?, del emule por ejemplo estoy al 100% seguro porque he visto algo de code, aunque de un p2p en Java es cierto que no he mirado, pero el Azureus (Vuze) es de lo más completo (y complejo)...
Ubuntu User
Pascal (2008/2009)
C/C++ (2009/¿?)
8080 Assembler (2009/2010)
MIPS I Assembler (2010/¿?)

Todo lo que yo haga o diga esta bajo:



No pertenece ni a mi ni a nadie :P .

Ragnarok

Sí, hay que mirarlo con cuidado y con tiento para mirar la parte que interesa, por eso dije que lo mirara al menos para ver las librerías que usan (y, evidentemente, usar las mismas).
No olvidéis leer las normas generales, además de las específicas de cada tablón.sgae, ladrones