descargar - ¿Cómo hago mi propio software P2P?
programas p2p 2017 (5)
¿Cómo puedo hacer mi propio napster? ¿Qué biblioteca están usando estos programas p2p? No estoy muy familiarizado con el concepto de programación de socket. ¿Podrías hacer un programa p2p usando Qt4?
Me he estado preguntando acerca de esta pregunta desde los días de Napster.
¿Cómo harías para crear el siguiente "bitorrent"? ¿Esto es mediante el uso de bibliotecas de socket similares?
¿Qué es lo último en tecnología p2p? ¿hay algún sitio de noticias? ¿Cuál es el futuro para p2p?
... Peer 2 Peer
La GUI sin duda se puede desarrollar en Qt (como usted planea).
Para el manejo de la red p2p backend, mira esto:
También es posible que desee ver esto:
¡¡Buena suerte!!
Compartir de igual a igual la forma en que trabajaba Napster solo tiene sentido cuando hay muchas personas que comparten archivos. Es un poco un problema de gallina y huevo, pero todo se reduce a esto: nadie usa una red que nadie usa. Lo mismo ocurre con las redes sociales et al.
Dicho esto, Qt4 sí incluye un módulo de red que soporta UDP y TCP, la base para la comunicación a través de Internet. Hay documentación y código de ejemplo disponible here .
En cuanto a tu última pregunta: creo que el futuro de P2P está lleno de dolor y sufrimiento. Big Content es después de la "característica" más utilizada de las redes p2p: compartir música y películas. Tu opinión puede ser diferente.
Encontré el siguiente enlace: http://en.wikibooks.org/w/index.php?title=The_World_of_Peer-to-Peer_(P2P)/Building_a_P2P_System / http://en.wikibooks.org/w/index.php?title=The_World_of_Peer-to-Peer_(P2P)/Building_a_P2P_System
Aún no está completo, pero le dará una idea de lo que debe considerar al diseñar o crear su propia red P2P.
P2P o Peer-to-Peer es un tipo de programa muy difícil de crear, principalmente debido a su estructura. La mayoría de las aplicaciones de Internet son cliente-servidor, esto se debe a que muchos dolores de cabeza se solucionan simplemente al tener un servidor fijo al que se puede conectar. Al final del día, eso es más o menos todo lo que hizo Napster, simplemente indexó los archivos y dijo quién los está alojando actualmente.
El otro problema con la creación del software P2P, es que al desarrollarlo por su cuenta, tendrá muy pocos compañeros con los que probar, incluso si crea un grupo de computadoras virtuales. Le resultará difícil probarlo escalado a 00 de usuarios.
Sin embargo, los primeros pasos, deberá aprender a programar en un lenguaje adecuado, algo como C ++ o C # tal vez solo sea una aplicación de consola para aprender la tecnología.
A continuación, aprende a trabajar con archivos. No sirve de mucho si no puedes guardar cosas.
Redes a continuación. Comience con una configuración cliente-servidor solo para familiarizarse con la transferencia de archivos. Cree una aplicación de servidor que proporcione los archivos y una aplicación de cliente que la descargue. Luego comience a escalarlo a un servidor, dando archivos a muchos clientes.
El último paso es fusionar el cliente y el servidor para que, a medida que el par descargue más del archivo, pueda comenzar a ser un servidor y permitir que otros clientes lo descarguen.
Si quieres, ahora puedes pensar en una GUI.
Si yo fuera tú, descargaría el código fuente para programas P2P muy populares como Frostwire. Hay un montón de código fuente arriba en sourceforge. Nada mejor que ver cómo todo encaja en un proyecto completamente ejecutable que se puede probar de inmediato. El código en pleno funcionamiento es excelente para aprender.
http://sourceforge.net/projects/frostwire/
http://shareaza.sourceforge.net/
Una vez que vea la tarea desalentadora por delante de usted ... es posible que no desee hacerlo más. Solo hice una búsqueda rápida del código fuente para un par de los más populares, pero Frostwire es probablemente el más usado después de Limewire. Lo he eliminado de miles de máquinas de los clientes cuando les advierto acerca de P2P (sus hijos no están descargando Linux ISO) :)
Oooo ... acabo de notar la fecha en esto. Bueno, ya lo escribí y si alguna vez empezaste a trabajar en el proyecto, estoy seguro de que todavía estás trabajando en él :)