如何使用c ++编写自己的下载管理器?

时间:2010-10-19 19:30:16

标签: c++ qt qt4

我想用c ++(qt4)编写我自己的下载管理器,但我不知道如此

如果您知道任何好的教程或链接请

,请建议我从哪里开始

发布。

我还想实现暂停/恢复和多个下载功能。

我已经知道有很长的下载管理器列表(fdm,idm,wget,flashgot,orbit等),但我仍然想创建自己的下载管理器来理解它们背后的工作。

- 提前谢谢。

5 个答案:

答案 0 :(得分:6)

如果您正在尝试制作生产成绩,我会推荐URDL或Boost.Asio。

但是如果你想要玩得开心,那么考虑Byte Ranges和多线程进行异步处理。仍然asio也是最好的选择。

答案 1 :(得分:4)

Qt类 - QNetworkAccessManager,QNetworkRequest和QNetworkReply类将帮助您编写下载管理器。

QNetworkAcessManager :: get()用于下载

- 干杯

答案 2 :(得分:2)

答案 3 :(得分:2)

Qt 是一个相当稳定的项目,并且有一个很棒的文档,而不是 Boost ,所以我为Qt Projects做了一个小标题,像专业人士一样处理下载,你应该试试吧。

QEasyDownloader

功能

  • 内置下载队列支持
  • 自动恢复下载,如果用户想要,可以禁用!
  • 自动处理网络中断
  • 暂停恢复下载就像魅力一样。
  • 资源操作,使用您自己的QNetworkAccessManager

用法

#include <QCoreApplication>
#include "QEasyDownloader/QEasyDownloader.hpp"

int main(int argc, char **argv)
{
 QCoreApplication app(argc, argv);
 QEasyDownloader Downloader;
 /*
  * By Default Debug is false , make it true to print the download progress and
  * other stuff!
 */
 Downloader.Debug(true);

 QObject::connect(&Downloader, &QEasyDownloader::DownloadFinished,
 [&](QUrl Url, QString file) {
     qDebug() << "Downloaded :: " << file << " :: FROM :: " << Url;
     app.quit();
 });
 /*
  * Just Download!
 */
 Downloader.Download("http://www.divineimagination.com/gallery/movie/roving_web.wmv");
 return app.exec();
}

```

答案 4 :(得分:0)

可能是DataCod(和svn)?