python c network-programming p2p bittorrent

python - ¿Cómo escribir una aplicación Bittorrent simple?



network-programming p2p (1)

Cómo escribir una aplicación bittorrent simple. Algo así como un "mundo de hola" usando una biblioteca de bittorrent, me refiero a la aplicación más simple para entender el funcionamiento de bittorrent. Preferiría una implementación python o C / C ++, pero puede ser cualquier idioma. La plataforma tampoco es un problema, pero preferiría Linux.

Recomendaciones para la biblioteca a seguir, he descargado el código fuente de uno (creo que bittorrent oficial) de - http://sourceforge.net/projects/bittorrent/develop . Pero, veo muchas otras bibliotecas en http://en.wikipedia.org/wiki/Comparison_of_BitTorrent_clients#Libraries . Agradecería las recomendaciones sobre esto.

Cómo probar una aplicación si todo lo que tiene es una computadora portátil.


Deberías probar libtorrent (barra de trama). http://libtorrent.org

Si desea escribir su cliente en python, en Linux, instálelo con:

sudo apt-get install python-libtorrent

Un ejemplo muy simple de código python para usarlo para descargar un torrente:

import libtorrent as lt import time import sys ses = lt.session() ses.listen_on(6881, 6891) info = lt.torrent_info(sys.argv[1]) h = ses.add_torrent({''ti'': info, ''save_path'': ''./''}) print ''starting'', h.name() while (not h.is_seed()): s = h.status() state_str = [''queued'', ''checking'', ''downloading metadata'', / ''downloading'', ''finished'', ''seeding'', ''allocating'', ''checking fastresume''] print ''/r%.2f%% complete (down: %.1f kb/s up: %.1f kB/s peers: %d) %s'' % / (s.progress * 100, s.download_rate / 1000, s.upload_rate / 1000, / s.num_peers, state_str[s.state]), sys.stdout.flush() time.sleep(1) print h.name(), ''complete''