用INDY9开发FTP客户端_06
-- FTP下载限速的实现方法
Roger Yang
为了实现FTP下载限速功能,最初是找到了INDY中的TIdIOHandlerThrottle。根据TIdIOHandlerThrottle的功能描述“Implements an IOHandler used to restrict throughput to a targeted number of bytes per second.”,确信下载限速就靠它了,可事实并没这么乐观。
把TIdIOHandlerThrottle拖到窗体上,几个属性一设,就搞定了,看看还挺简单的。可一运行就发现了一个大问题,执行连接、读取文件列表、改变目录等FTP操作时的传输速度是被限制住了,可下载文件时的传输速度并不受限制。之后,尝试了好几种方法,看了INDY的源码,都没能使TIdIOHandlerThrottle对下载文件起限速作用。最后,只有在TIdFTP的OnWork事件中使用sleep方法,实现限速功能。