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''