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

问题描述 投票:6回答:5

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

如果您知道任何好的教程或请链接,请建议我从哪里开始

发表它。

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

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

-提前致谢。

c++ qt qt4
5个回答
6
投票

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

但是,如果你正在修补乐趣,那么考虑使用Byte Ranges和多线程进行异步处理。 asio仍然是最好的选择。


4
投票

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

QNetworkAccessManager :: get()用于下载

- 干杯



2
投票

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

QEasyDownloader

Features

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

Usage

#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();
}

```


0
投票

可能是DataCod(和svn)?

© www.soinside.com 2019 - 2024. All rights reserved.