多くの都市が独自のローカルエリアネットワークを持っていることは秘密ではありません。 これらのネットワークでの交換は、ほとんどの場合、 DirectConnectの原則に従って、DC ++、StrongDC ++、FlyLinkDC ++などのプログラムを通じて行われます。
これらのプログラムでのファイルの検索はリアルタイムで行われます。 現在ハブに接続しているユーザーのみ。 したがって、この検索は完了していません。 さらに、このプログラムでは、ハブに最後にアクセスしてからネットワークに表示された新しいファイルは表示されません。 これは本当の問題です-「avi、mdf、pdf」などの検索を常に実行する必要があります。 どんな新しい映画、ゲーム、本が登場したかを見るために...一般的に、頭痛の種:)。
カットの下で、私はこれらの問題の簡単な解決策を提供します(つまり、額と言ってすぐに:)
プログラムの1つの原理を考慮してください:FlyLinkDC ++
特定のユーザーがどのファイルを持っているかを見るために、彼のList of filesをダウンロードします 。 このリストはbz2形式のアーカイブの通常のXMLにすぎず、この幸福はフォルダー「C:\ Program Files \ FlylinkDC ++ \ Settings \ FileLists \」にコピーされます(プログラムがデフォルト設定でインストールされている場合)。 したがって、すべてのユーザーからファイルのリストを受信すると、それらはすべて「FileLists」フォルダーに表示されます。
そして、技術の問題:
1.ファイルを解凍する
2. XMLをデータベースに解析します(TTHフィールドは一意でなければなりません)。
3.使用します。
なぜなら データベース内の1つのフィールドは一意であるため(TTHフィールドはファイルハッシュです)、データベース内のファイルの重複を避けます。
データベースにデータを追加する時間を知っている-ネットワーク上の新しいファイルの出現を追跡するのは簡単です。
特定のユーザーが現在ハブから切断されている場合でも、ファイルのリストは常に利用可能です。
彼自身の不器用な手で、これらのアクションを実装するプログラムが書かれました(アーカイブ4 MB。ソース+ exe)。 すべてが迅速に行われます。 Visual Basic .Netをベースとして、SQLiteを使用しました。
外観:
これでプログラムを終了する時間がないので、それを思い出すことは大歓迎です!
リビジョンを共有することを忘れないでください!)