Cómo escribir una simple aplicación bittorrent. Algo así como un «hola mundo» usando una bittorrent de la biblioteca, me refiero a una más simple de la aplicación, para entender el trabajo de bittorrent. Yo prefiero python o C/C++ aplicación, pero puede ser cualquier idioma. La plataforma no es un problemas, pero prefiero Linux.

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

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

InformationsquelleAutor Vivek Sharma | 2011-03-23

1 Comentario

  1. 77

    Usted debe tratar de libtorrent (rasterbar). http://libtorrent.org

    Si quieres escribir tu cliente en python, en linux, instale con:

    sudo apt-get install python-libtorrent

    Un ejemplo muy simple de código en python para utilizarlo para descargar un torrent:

    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'
    • Wow. Realmente logrado su objetivo de «fácil de usar». Esta es una excelente aplicación!
    • Me puede decir lo que se esta haciendo? ses.listen_on(6881, 6891) y por qué esos valores?
    • 6881 es el puerto en el que escucha. Si el enlace a ese puerto en el que escucha falla, libtorrent va a tratar de incrementarlo por uno y tratar de nuevo. Si sigue fallando hasta que se llega a 6891, que se deje de tratar y acaba de fallar. los errores son reportados como alertas.
    • Lo que se supone que se utiliza para el cl argumento (en sys.argv[1]?) He intentado tanto, una ruta de acceso a un .torrent archivo y un enlace imán.
    • la ruta de acceso a una .archivo torrent
    • Estoy tratando de conseguir el torrent info proporcionando la infohash pero el código atrapado en el bucle while while (not h.has_metadata()) stackoverflow.com/questions/45520804/libtorrent-get-metadata alguna idea por favor?

Dejar respuesta

Please enter your comment!
Please enter your name here