资源简介
Delphi线程池实现多线程FTP分段下载组件
by :renshouren
mail:114032666@qq.com
QQ:114032666
2019.10.05
使用的组件
1、TIdFTP Indy FTP客户端
2、TThreadsPool 线程池
工作原理及流程
调用本单元,将自动在程序初始化时生成线程池TThreadPoolDown实例 Share_ThreadPool_FTPDown
一、外部调用方法
外部只需要一次性调用 FtpDown() 函数向线程池加入下载任务,下载任务执行中的事件会通过调用时注册的
回调函数 AFtpDownEvent 进行通知。
二、内部工作流程
1、FtpDown()函数将调用TThreadPoolDown.AddFtpDown() ,然后调用TADownFileObj.MakeGetFileSizeObj()分配线程任务
本过程中,将向回调函数 AFtpDownEvent 触发 HEM_ADDURL 事件通知
2、工作线程调用任务对象TFTPHeadObj.DoThreadExecute 过程获取远程文件大小
备注:该功能实际使用到FTP命令SIZE,该命令一些老版本FTP服务器有可能不支持
本过程中,若获取文件大小成功,将向回调函数 AFtpDownEvent 触发 HEM_GETSIZE 事件通知,
若失败,则触发 HEM_ERROR 事件通知
3、得到远程文件大小后,调用TADownFileObj.MakeGetObjs(),分配获取远程文件线程任务
本过程中,开始时,将向回调函数 AFtpDownEvent 触发 HEM_WORKBEGIN 事件通知
在接收数据时,向回调函数 AFtpDownEvent 触发 HEM_WORK 事件通知
4、工作线程调用任务对象 TFTPGetObj.DoThreadExecute 实际下载远程文件数据块
每一个数据块下载任务完成后,触发 HEM_BLOCKOK 事件通知
5、所有数据块完成后,将调用 DoDownloadOK 函数,触发 HEM_DOWNOK 事件通知
代码片段和文件信息
- 上一篇:delphi完美登陆/主界面切换
- 下一篇:DELPHI XE 注册机
相关资源
- DELPHI XE 注册机
- delphi完美登陆/主界面切换
- Delphi7 Demos
- DCU DeCompiler V5.4DCU文件反编译
- delphi 端口映射
- Delphi XE之后调用SMS.dll的调用短信模块
- Delphi XE10 Seattle移动开发指南完整版
- Delphi XE 10.2.3使用密钥加密解密源码,
- ftphttp-报文还原
- FTP远程文件同步更新程序
- tftp.exe路由器上传固件用
- ftp文件传输api
- FlashFXP免注册码版 V5.4.0 永久免费版
- FTP软件绿色版一款很好用的FTP软件不
- sftp 源代码及
- FlashFXP5破解版注册码
- 64位ftp Linux安装包
- STM32F429+TFTP_IAP
- tftp64位简体
- FastReports 5.6.1 Fix By Flying Wang FS V2017.
- ftp服务器软件
- 定时ftp上传文件
- FTPServerwindows绿色版
- H3C-FTP-TFTP-SYSLOG服务器工具
- TFTP中文版.zip
- SFTP第三方插件及连接测试程序
- 深入浅析SSH的三个组件ssh、sftp、scp
- Linux FTP客户端服务端安装包
- vsftpd-2.0.5-16.el5.i386.rpm
- indy10 demo
川公网安备 51152502000135号
评论
共有 条评论