Как написать собственный менеджер загрузок с помощью c++?
Я хочу написать свой собственный менеджер загрузок с помощью c++(qt4), но я понятия не имею об этом так
пожалуйста, предложите мне, где я должен начать, если вы знаете, любой хороший учебник или ссылку, пожалуйста
запостить.
Я также хочу реализовать функцию паузы / возобновления и несколько функций загрузки.
Я уже знаю,что есть длинный список менеджера загрузки(fdm,idm,wget,flashgot, orbit и т. д.) но все же я хочу создать свой собственный, чтобы понять работает за ними.
-спасибо заранее.
5 ответов
Если вы пытаетесь сделать класс производства, я бы рекомендовал URDL или Boost.Асио в целом.
но если вы возитесь для удовольствия, то подумайте Байтовых Диапазонов и многопоточность для асинхронной обработки. Еще asio будет лучшим выбором для этого тоже.
Qt classes-QNetworkAccessManager, qnetworkrequest и qnetworkreply классы помогут вам в написании менеджера загрузки.
QNetworkAcessManager::get() используется для загрузки
--Ура
полный пример Qt: http://doc.qt.nokia.com/4.6/network-downloadmanager.html
Qt довольно стабильный проект и имеет замечательную документацию, а не Boost, поэтому я сделал небольшой заголовок для проектов Qt, который обрабатывает загрузки как профессионал, вы должны попробовать.
особенности
- встроенная поддержка очереди загрузки
- автоматически возобновляет загрузку, может быть отключена, если пользователь хочет!
- автоматически обрабатывает Сеть Перерывы.
- пауза и резюме загрузки, как шарм.
- манипуляции ресурса , используйте свой собственный 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();
}
``