Как написать собственный менеджер загрузок с помощью c++?

Я хочу написать свой собственный менеджер загрузок с помощью c++(qt4), но я понятия не имею об этом так

пожалуйста, предложите мне, где я должен начать, если вы знаете, любой хороший учебник или ссылку, пожалуйста

запостить.

Я также хочу реализовать функцию паузы / возобновления и несколько функций загрузки.

Я уже знаю,что есть длинный список менеджера загрузки(fdm,idm,wget,flashgot, orbit и т. д.) но все же я хочу создать свой собственный, чтобы понять работает за ними.

-спасибо заранее.

5 ответов


Если вы пытаетесь сделать класс производства, я бы рекомендовал URDL или Boost.Асио в целом.

но если вы возитесь для удовольствия, то подумайте Байтовых Диапазонов и многопоточность для асинхронной обработки. Еще asio будет лучшим выбором для этого тоже.


Qt classes-QNetworkAccessManager, qnetworkrequest и qnetworkreply классы помогут вам в написании менеджера загрузки.

QNetworkAcessManager::get() используется для загрузки

--Ура



Qt довольно стабильный проект и имеет замечательную документацию, а не Boost, поэтому я сделал небольшой заголовок для проектов Qt, который обрабатывает загрузки как профессионал, вы должны попробовать.

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

``


может быть DataCodsvn)?