代码之家  ›  专栏  ›  技术社区  ›  Jorge Israel Peña

多部分下载在C?

  •  5
  • Jorge Israel Peña  · 技术社区  · 16 年前

    请原谅我对这个问题一无所知。

    我想用C语言编写一个应用程序,它可以用同样的方式从服务器上下载文件 DownThemAll 做。downthemall似乎打开了到HTTP服务器的四个连接来下载同一个文件。我只是想知道是否有现有的库可以做到这一点。

    以下是他们网站上关于此功能的引述:

    Downthemall提供了一种称为“多部分下载”的智能下载技术。它将文件分成多个部分,同时下载。

    我还希望能够暂停/继续下载。这是我想要的基本功能,我不一定需要一个完整的下载管理器库,但是如果有一个可以做这些事情,那么我也很想知道它们。这些文件位于以LightTPD为宿主的受密码保护的目录中,因此我还需要某种方法来进行身份验证。

    如果没有任何我可以使用的现有库,那么我应该研究哪些.NET类才能做到这一点?

    谢谢!

    编辑 :将标题改写为更合适的标题,并从DownthemAll网站添加一个报价,解释它是什么。

    第二编辑 :我相信斯文斯发布了迄今为止最合适的答案,不过作为一个评论,这是我的错,因为我不知道我在说什么,我把标题弄错了。他贴了一张 article 通过HTTP下载暂停/恢复。它还谈到 Range 我想我应该使用的标题是:

    range header能够在一个请求中请求多个范围,这是一个称为“多部分范围”的功能。不要将其与分段下载混淆,分段下载几乎是所有下载工具用来提高下载速度。这些工具声称通过打开两个或多个同时连接来提高下载速度,每个连接请求不同的文件范围。

    所以我想使用这个范围同时下载文件的某些部分。同样,与一次性下载文件相比,这可能没有任何优势。我就这样做,允许暂停/恢复。

    谢谢大家!

    P.S Svens,继续发表评论作为答案,这样我可以接受你想要的。

    5 回复  |  直到 11 年前
        1
  •  2
  •   csharptest.net    16 年前

    我和斯文斯在一起, http://www.devx.com/dotnet/Article/22533/0/page/2 似乎全都说了。

        2
  •  3
  •   Jeremy Lake    12 年前

    请原谅在一篇比基督更老的文章上发表,但是:

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

    似乎更接近被问到的问题。

    当前标记的“正确答案”很适合提供服务器端的部分下载例程,它在某种程度上解释了HTTP范围头的作用,但它不是下载客户端。

        3
  •  1
  •   David    16 年前

    这个 System.Net.HttpClient 类应该能够下载您的文件。只需从一个线程或线程池调用这个类,就可以同时下载很多文件。

        4
  •  0
  •   overstood    16 年前

    system.net.webrequestmethods.http命名空间是一个很好的起点。您可能想使用GET来下拉所需的文件。

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

        5
  •  0
  •   ashish jaiman    16 年前
    推荐文章