3

Pythonを使用して独自の torrent アプリを開発しようとしています。いくつかの調査の後、私はlibtorrentを使用することに決め、この興味深い答えを見つけました:

1つの答えを持つ別の同様の質問も見つけました:

しかし、そこで私はそれを行う方法を理解できませんでした。質問でリンクされている完全なドキュメントを読みましたが、これに直面する方法については何もわかりませんでした。

ダウンロードを管理する方法を理解しようとして、libtorrentを見回してきました...

  • 最初から最後までダウンロードを開始するにはどうすればよいですか?

私の目標は、トレント「注文済み」のダウンロードを開始することです。つまり、トレントのランダムな部分、つまり現時点で利用可能な部分をダウンロードしたくないので、最初から最後までダウンロードしたいと考えています。

誰かがこれを試して、適切なlibtorrentドキュメントを教えてくれたら最高です!!!


  • 注文したファイルのダウンロードを開始するにはどうすればよいですか? --> set_sequential_download()

しかし、どうやってピースを待つことができますか? 次の 10 個で始まるまで、最初の 10 個を待機するように libtorrent を構成するにはどうすればよいですか?

4

1 に答える 1

6

ピースを順番にダウンロードする最も簡単な方法は、その torrent の torrent_handle でset_sequential_download()を呼び出すことです。これは、ピース 0、1、2 などから始まるピース オーダーです。ダウンロードされるオーダー ファイルは、.torrent ファイルで指定された順序に依存します (つまり、多くの場合、任意の順序に見えます)。

これにより、libtorrentのリクエストピースが順番に作成されますが、必ずしも順番どおりに完了するとは限りません。本当に必要なのはファイルをストリーミングすること、つまりダウンロードしながら再生することである場合は、作品を順番に完成させることを目指す必要がありますが、これには微妙な違いがあります。ストリーミングの場合は、set_piece_deadline()を調べます。これは、別のピース ピッキング メカニズムを使用してそのようなピースをリクエストします。

于 2014-12-19T08:21:39.693 に答える