winsoft666-teemo基于 C++ 的下载工具
teemo 是一个使用 C++ 开发的下载工具,基于 libcurl 开发而来,它支持如下特性:
- 多协议支持,由于是基于libcurl的,所以支持libcurl所支持的所有协议,如http, https, ftp等。
- 支持多线程下载
- 支持断点续传
- 支持暂停/继续下载
- 支持获取实时下载速率
- 支持下载限速
- 支持磁盘缓存
- 支持文件哈希校验
- 支持大文件下载
- 支持兼容服务器对客户端加速下载的限制
编译与安装
方式一、使用 vcpkg
teemo
库已经收录到微软的vcpkg之中,可以使用如下命令快速安装:
-
- 下载安装vcpkg(详见https://github.com/microsoft/vcpkg
git clone https://github.com/Microsoft/vcpkg.git cd vcpkg PS> bootstrap-vcpkg.bootstrap Linux:~/$ ./bootstrap-vcpkg.sh
-
- 安装teemo
PS> .\\vcpkg install teemo [--triplet x64-windows-static/x64-windows/x64-windows-static-md and etc...] Linux:~/$ ./vcpkg install teemo
方式二、使用源码编译
1. 安装依赖项
我倾向于使用vcpkg来安装依赖项,当然,这不是安装依赖项的唯一方式,你可以使用任何方式来安装依赖项。
建议将vcpkg.exe所在目录添加到PATH环境变量。
- libcurl
<pre>
# 如果需要支持非http协议,如ftp等,需要指定[non-http]选项 vcpkg install curl[non-http]:x86-windows
</li> <li> gtest 单元测试项目使用了gtest。 <pre>
vcpkg install gtest:x86-windows
</li>
2. 编译
使用CMake生成相应的工程,然后编译即可。 Windows示例
cmake.exe -G "Visual Studio 15 2017" -DBUILD_SHARED_LIBS=ON -DBUILD_TESTS=ON -S %~dp0 -B %~dp0build
Linux示例
cmake -DBUILD_SHARED_LIBS=ON -DBUILD_TESTS=ON
# 如果使用vcpkg安装依赖库,需要指定CMAKE_TOOLCHAIN_FILE cmake -DCMAKE_TOOLCHAIN_FILE=/xxx/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-linux -DBUILD_SHARED_LIBS=ON -DBUILD_TESTS=ON
make
命令行工具
teemo_tool
是一个基于teemo
库开发的命令行下载工具,用法如下:
teemo_tool URL TargetFilePath [ThreadNum] [DiskCacheMb] [MD5] [TmpExpiredSeconds] [MaxSpeed]
- URL: 下载链接
- TargetFilePath: 下载的目标文件保存路径
- ThreadNum: 线程数量,可选,默认为1
- DiskCacheMb: 磁盘缓存大小,单位Mb,默认为20Mb
- MD5: 下载文件的MD5,可选,若不为空,则在下载完成之后会进行文件MD5校验
- TmpExpiredSeconds: 秒数,可选,临时文件经过多少秒之后过期
- MaxSpeed: 最高下载速度(byte/s)
评论
hd基于 HTTP 协议的下载工具
入门hd 是一个基于HTTP协议的下载工具。通过命令:brewinstalllinuxsuren/linuxsuren/hd 来安装用法hdgethttps://github.com/jenk
hd基于 HTTP 协议的下载工具
0
PointDownload基于Qt库的下载工具
PointDownload点载,是一个能帮助你方便地从网络上下载各种文件的软件。现在已经支持主流的各种下载协议,包括迅雷的thunder://和QQ旋风的下载协议。当前提供的软件安装包支持的操作系统有
PointDownload基于Qt库的下载工具
0
BaijieCppUILib基于 C++ 的界面库
百捷界面库是一款面向 Windows 下 C++开发者、旨在提供一套易用、独立的界面库。使得C++开
BaijieCppUILib基于 C++ 的界面库
0
BaijieCppUILib基于 C++ 的界面库
百捷界面库是一款面向Windows下C++开发者、旨在提供一套易用、独立的界面库。使得C++开发者除了MFC、VCL、QT、WxWidgets之外又多了一套支持Windows下GUI开发的类库;不仅如
BaijieCppUILib基于 C++ 的界面库
0