5

この件に関して私の無知をお許しください。

DownThemAllと同じ方法でサーバーからファイルをダウンロードできるアプリケーションを C# で作成したいと考えています。DownThemAll は、同じファイルをダウンロードするために HTTP サーバーへの接続を 4 つ開いているようです。これを行う可能性のある既存のライブラリがあるかどうか疑問に思っていました。

この機能に関する彼らのサイトからの引用は次のとおりです。

DownThemAll は、「マルチパート ダウンロード」と呼ばれるスマートなダウンロード手法を備えています。ファイルを複数のセクションに分割し、同時にダウンロードします。

また、ダウンロードを一時停止/再開できるようにしたいと考えています。それが私が望む基本的な機能です。完全なダウンロード マネージャー ライブラリは必ずしも必要ではありませんが、これらのことを実行できるライブラリがあれば、それについても知りたいです。ファイルは、lighttpd でホストされているパスワードで保護されたディレクトリにあるため、自分自身を認証する方法も必要です。

使用できる既存のライブラリがない場合、これを実行できる可能性のある.netクラスを調べる必要がありますか?

ありがとう!

編集: タイトルをより適切に言い換え、それが何であるかを説明する DownThemAll サイトからの引用を追加しました。

2番目の編集:svensがこれまでで最も適切な回答を投稿したと思いますが、コメントとして:/自分が何について話しているのかわからなかったのでタイトルを誤解したので、それは私のせいです. 彼は、HTTP ダウンロードの一時停止/再開に関する記事を投稿しました。Rangeまた、私が使用することになっているヘッダーについても説明しています。

Range ヘッダーは、1 回のリクエストで複数の範囲を要求できます。これは、「マルチパート範囲」と呼ばれる機能です。これを、ほとんどすべてのダウンロード ツールがダウンロード速度を上げるために使用するセグメント化されたダウンロードと混同しないでください。これらのツールは、2 つ以上の同時接続を開き、それぞれが異なる範囲のファイルを要求することにより、ダウンロード速度を向上させると主張しています。

そのため、範囲を使用してファイルの特定の部分を同時にダウンロードしたいと考えています。繰り返しになりますが、ファイルを一度にダウンロードするよりもおそらく利点はありません。私はそれをして、一時停止/再開できるようにします。

みんなありがとう!

PS svens、先に進んでコメントを回答として投稿してください。必要に応じて受け入れることができます。

4

5 に答える 5

3

キリストよりも古い記事への投稿を許してください、しかしこれは:

http://www.codeproject.com/Articles/21053/MyDownloader-A-Multi-thread-C-Segmented-Download-M

求められていたものに近いようです。

現在マークされている「正解」は、サーバー側の部分的なダウンロード ルーチンを提供するのに適しています。HTTP Range ヘッダーが何をするかを説明するのに役立ちますが、ダウンロード クライアントではありません。

于 2013-10-02T00:20:50.217 に答える
1

私はこれについてsvensと一緒です、http://www.devx.com/dotnet/Article/22533/0/page/2はそれをすべて言っているようです。

于 2009-10-12T21:43:42.730 に答える
1

クラスはSystem.Net.HttpClientファイルをダウンロードできるはずです。このクラスをスレッドまたはスレッド プールから呼び出すだけで、同時に多数のファイルをダウンロードできます。

于 2009-10-12T21:05:48.457 に答える
0

BITS (Background Intelligent Transfer Service) を使用できます。良い記事 の詳細情報 http://msdn.microsoft.com/en-us/library/aa362708(VS.85).aspx http://www.codeproject.com/KB /IP/bitsman.aspx

于 2009-10-12T21:10:13.287 に答える
0

System.Net.WebrequestMethods.Http 名前空間は、開始するのに適した場所です。Get を使用して、必要なファイルをプルダウンすることをお勧めします。

http://msdn.microsoft.com/en-us/library/system.net.webrequestmethods.http.aspx

于 2009-10-12T21:06:48.363 に答える