質問
ファイル共有のためにミドルウェアシステムを実装する必要があります。また、bittorrentで起こることとは異なり、ファイルを分割する必要があります。それ、どうやったら出来るの?ライブラリですか、それとも自分でファイルを分割する必要がありますか?
解決
ファイルをブロックに分割します。たとえば、それぞれ100 KBです。次に、各ブロックでSHAハッシュ(または他のハッシュアルゴリズム)を計算します。そのため、ファイルが905KBの場合、10個のハッシュが計算されます。
サーバーには、提供する各ファイルのハッシュ定義ファイルが含まれます。このハッシュ定義ファイルには、ファイルのすべてのブロックのリストとハッシュが含まれます。サーバーがtest.exeという905KBファイルを提供している場合。次に、test.exe.hashesという別のファイルを作成します。このファイルには、ファイルの10個のハッシュのリストが含まれています。
クライアントはハッシュ定義ファイルをダウンロードし、すべてのブロックが含まれていることを確認します。クライアントは各ブロックを個別にリクエストでき、ダウンロード後、最後にハッシュを再計算して破損がないことを確認できます。
ファイルを物理的に分割する必要はありません。ファイルを分割するのは、関心のある部分を読み取るだけです。ファイルの最初のブロックはバイト範囲0〜102399、次のブロックは102400です204800などに。そのため、ファイルを開き、その位置を探し、データを読み取り、ファイルを閉じます。
所属していません StackOverflow