0

私は P2P ファイル共有プログラムに取り組んでおり、ファイルを少しずつ渡すために、アップロードされたファイルを何らかの方法で分割する必要があります。これで、ファイルを小さなファイルに分割し、C# Stream クラスを使用してフォルダーに配置するプログラムを作成し、それを再構築することもできます。ただし、非効率的で時間がかかります。要求されたファイルに応じてオフセットを使用してストリームからデータを読み取り、保存せずに送信することを考えました。ただし、データが順番に送信されないため、正しい順序で受信側に追加する方法がわかりません。

余談ですが、bitTorrent はどのようにしてそのような機能を実現しているのでしょうか?

ありがとう

4

1 に答える 1

1

受信者はチャンクを保存する必要があります。送信者はしません。おそらく、ディスク上で初期化された受信機ゼロにファイル全体を作成する必要があります。次に、受け取ったときに穴を埋めることができます。まだ存在する範囲を追跡するには、別の構造が必要ですList<Tuple<int, int>>

于 2015-12-13T16:32:27.143 に答える