队列FTP智能下载工具的设计

ftp下载工具  时间:2021-02-23  阅读:()

F TP智能下载工具的设计

第l6卷第1期2O05年2月中原工学院v01.

16No.1

F eb. .嬲

FTP智能下载工具的设计

夏敏捷

(中原工学院,河南郑州450007)

摘要:介绍了F智能下载工具的开发需求,详细分析了基本的上传下载功能的实现,讨论了自动压缩打包,远程出

错信息发送,记录完整日志,简单磁盘管理等特殊功能的实现.

关键词:智能下载~NI. .ST方式;被动式传输.

中图分类号:Tit 393.093文献标识码:A

某公司每天从联通公司服务器下载的数据日益增

多,原来完全由手工在DOS下进行的数据下载操作已

远远不能满足其对数据的需求,并且工作效率极低.在

这种形势下,公司需要一个FrP软件,将在DOS下的

操作Windo ws化,进而实现智能下载等一系列功能.

1设计思想

由于联通公司采用的YI'P服务器为老式的非列表

式服务器,客户端只能向服务器发送NLST请求后建

立连接,并进行文件传输.而目前所有的通用grP下载

工具包括LeapgrP,flashget,tl~hfxp等等很多优秀的izrP客户端工具以及Window s浏览器等可用的Win.dows窗口式工具都是发送LIS T命令与服务器建立连

接.因此,如果采用上述工具连接联通公司服务器,并

不出现连接服务器错误,但是却不能显示服务器上的

内容,因此无从下载.这样就只能在DO S下采用YI'P

命令方式,发送IJs命令显示YI'P服务器内容.而dir命令向服务器发送的是LIST请求,因此不能显示FrP服务器内容.当IJs命令显示F TP内容后,就可以用get命令进行下载.

基于上述考虑,软件必须以向服务器发送NLST

命令方式实现与服务器的连接,进而实现基本的上传下载功能,最终达到智能自动化下载的目标.

软件的具体功能需求如下:

收稿日期.'2004—09—08

作者简介:夏敏捷(1974一),男,河南三门峡人,硕士,讲师

(1)系统应该可以用NLST方式实现与FTP服务器的连接,并可显示服务器内容.

(2)系统应该实现基本的上传下载功能.

(3)对于特定FrP服务器上文件名按照一定规律

变化的一组文件应该可以根据设置的任务队列实现定时自动下载.应该根据远程服务器的文件放置具体情况,只选择当日文件下载,当日文件如果没有在当天放在服务器上,应该定时寻找,当文件放在服务器上后再下载.

(4)系统应根据下载情况记录完全的下载日志.

(5)系统应将下载的文件自动打包.

(6)系统应该有远程出错提示功能,即将出错信息发送到局域网内的另一台计算机上.

(7)系统应具有简单的磁盘管理功能.

系统最基本的功能模块是上传和下载功能模块,这一基本功能模块实现了将下载操作Windows窗口化的目标,同时这一基本功能模块也正是实现了以向服务器发送NLST命令的方式与服务器连接.

在基本模块的基础上,加入任务设置模块,用来实

现任务定制,进而调用基本下载模块,实现智能自动下载.自动压缩打包模块,远程出错信息发送模块,记录日志模块,简单磁盘管理模块等功能模块是针对系统必须的其他几项功能设计的,这些模块都是建立在基本模块基础上的.

软件以Delphi6实现,界面整体采用经典的Win—?

70?中原工学院2005年第l6dows图形用户界面,简洁,美观,符合人机工程原理,通过简单的鼠标操作即可完成复杂的功能.软件功能分解如图1所示.

图1系统功能分解图

2软件的实现

2.1基本上传下载模块

2.1.1连接登陆模块

连接时首先判断是否已连接服务器,若连接,提示是否终止当前连接及下载过程,选是终止当前连接,并进行异常处理,如果发生异常,则提示终止当前连接出错.之后向服务器发送用户名和密码,调用IdF IP控件【,J的conne ct方法连接服务器.创建INIF ILE对象,从download.ini文件中载人对应所设置的任务,如果没有,则不载人任务.最后,调用远程资源显示过程,显示远程资源.程序主界面如图2所示.

图2系统主界面

2.1.2显示远程资源模块

显示远程资源时,不要求服务器返回资源的详细信息,仅仅返回资源的名称.这样虽然会给显示资源造成不便,但只有这样才可以连接上联通公司的兀P服

务器,这是问题的关键所在.这一模块主要包括添加队列,新建目录,删除文件和空文件夹,刷新当前目录,重命名远程文件或文件夹等功能.

2.1.3显示本地资源模块

显示本地资源模块主要是将本地当前目录的文件和文件夹显示在程序主界面上的本地资源显示栏中,方便用户上传文件,也可使用户指定下载文件的本地目录.这一模块主要包括添加队列,新建目录,删除文件和空文件夹,刷新当前目录等功能.

2.1.4执行队列模块

这一模块实现了系统最基本的功能.这一模块的基本功能包括上传和下载,这里将上传文件和下载文件统称为执行队列,即将上传和下载统称为执行,要执行的任务称为队列.由于要为实现自动定时下打基础,因此这一模块利用的下载文件过程的异常处理来达到循环下载尚未放到兀P服务器上的文件.这一模块主要有三个部分构成:基本的上传下载,暂时未找到文件异常的出错处理,发生其他异常的出错处理.由于这是

个专用软件,所要下载的文件都是文本文件,因此系统默认的传输方式为ASCII码传输方式,这种传输方式最适合用来传输文本文件.考虑到联通公司的FIP服务器是小型机,并且服务器是专门用来为盛华公司提供数据的,因此不考虑服务器的承受能力,而尽量加快文件的下载速度,所以,系统默认采用了被动式传输方式.

(1)上传下载功能.基本上传下载功能是分别调用IdFIP控件的Put和Get方法[3 J实现的.这一模块的下载功能支持断点续传.用户可以任意添加队列,这些队

列可以是上传队列,也可以是下载队列,并且队列的数量是没有限制的.当用户添加完所有要添加的队列后,选择执行队列,开始下载或上传文件,队列一个一个执行,直到执行完为止.由于要执行的队列可能不止一个,因此要设置一个循环,把所有要执行的队列都执行

遍.当队列是下载队列时,首先判断要下载的文件在同一个文件夹中是否有同名文件存在,如果有同名文件存在并且本地文件小于远程文件,则利用断点续传来下载,如果存在同名文件,但本地文件大于或等于远程文件,那么,将本地同名文件删除,然后再下载.如果没有同名文件存在,那么正常下载.

(2)暂时未找到文件异常的出错处理.这一异常处理流程是为自动执行任务设置的.当所要下载的文件暂时还没有放在服务器上时,会发生下载异常,因此这些队列要等到要下载的文件放在服务器上后再执行,这样就需要利用异常,来达到循环寻找暂时未找到的文件的目的.

首先要判断出错队列查找的次数是否已经达到设置的上限,如果已经达到,则认为文件已经无法下载,删除队列,记录日志,发送出错信息.如果查找次数尚未达到上限,则记录日志,将该队列从执行队列中删除,加入到过渡队列中.过渡队列是专门存放暂时未找到的文件的,当一个文件暂时未找到时,就将其存放在过渡队列中,到设定的时间后,再将其取出,再次加入到执行队列,再次查找.

(3)发生其它异常的出错处理.当队列执行过程中由于其它原因发生异常时,并不能直接将队列删除,而

是要将队列从列首移到列尾,等待前面的队列执行完后,再执行该队列,看是否能够完成任务,如果再次出错,则再次移到列尾,这样循环数次——系统默认5次——

仍然出错,再删除队列,这样提高了下载的成功

率.

2.2任务设置模块

任务设置模块功能分解图如图3所示.

任务设置模块

任务载入与ll执行任lI参数设I l循环查找暂未找保存模块ll务模块lI量模块ll到任务文件模块图3任务设置模块的功能分解图

这一模块是系统的精要所在,为了将原来繁琐低效的DO S操作才能完成的任务的人力浪费降到最低,仅仅实现将DO S操作Windows窗口化是不够的,还必须实现任务定时自动下载,也就是智能下载.能够实现自动下载,主要是得益于所要下载的文件都是有一定规律的:文件的远程路径和本地存放路径都是固定的,文件名字符串中都含有完整的日期,并且是当前时间.发现这一规律后,要实现文件自动定时下载就不难了.参考文献:

这一模块需要定时,因此引入了一个系统定时组件Time r,该组件是De lp hi中将几个特定的系统定时API函数集成在一起形成的简单定时组件.考虑到下载文件的时间问题,系统将默认值定为任务每小时查找一次,每天查找24次,这24次中只有一次满足设定的条件,即每天早上7点,这是会执行一次,其它的23次都是用来查找暂时未找到的文件的,每小时查找一次.暂时未找到的文件暂存在过渡列表中.

任务设置是可以保存的,当下次连接时,系统会自

动查找与所连接服务器相对应的INI配置文件,找到

相对应的项目后,将设置好的任务载入到任务设置窗

口中,然后用户不用再进行麻烦的任务设置操作,就可

以自动执行任务了.

3结语

除上述所分析的主要功能模块外,系统中还有一

些辅助性功能模块,如:记录日志,自动打包,远程出错

信息发送等模块,由于不涉及软件智能性,本文不再详

细介绍.

FTP智能下载工具软件已经在某公司运行了近两

个月,经过严密的单元测试和系统测试【53后,软件可以

正常运行,实现了该公司对软件所有需求的功能,大大

地提高了该公司下载数据的工作效率.

[1]尹会滨.DdpIIi程序设计教程[M].北京:清华大学出版社,2OO4.

[2]甘志,李幼仪,陈宜凯.Delphi7高级应用开发篇[M].北京:清华大学出版社,20O3.

[3]黄超,罗宏字.BorlandDt网络应用开发技术与实例[M].北京:清华大学出版社,2OO2.

E43吴云波.DelpIIi编程使用教程[M].北京:中国水利水电出版社,2OO4.

[5]杨文龙,姚淑珍,吴芸.软件工程[M].北京:电子工业出版社,2OO2.

TheDesigno ftheToo lo fF TPF ileIntelligenceDownloads

XIAMin-j ie

(Zho ngyuanInstituteo fTec hno lo gy,Zhengzho u450007,C hina)

Abstract:Thepaperintroduc esthe require mento fF ileInte lligence Do wnloadingToo l,anditinde tailanalyze storeal-izethe functiono fdownloadandup load,butalsodiscusse stherealityo fc~npressingfdeautomatica lly,and~d ingthee n'o rmessageo ftheremoter~ordingthelog,andmanag4ngdisksandsoon.

Keywo rds:the inte lligencedo wnlo ads;N LSTmethod;trans fers fileb ythepass ivetype

hypervmart:英国/荷兰vps,2核/3GB内存/25GB NVMe空间/不限流量/1Gbps端口/Hyper-V,$10.97/季

hypervmart怎么样?hypervmart是一家国外主机商,成立于2011年,提供虚拟主机、VPS等,vps基于Hyper-V 2012 R2,宣称不超售,支持linux和windows,有荷兰和英国2个数据中心,特色是1Gbps带宽、不限流量。现在配置提高,价格不变,性价比提高了很多。(数据中心不太清楚,按以前的记录,应该是欧洲),支持Paypal付款。点击进入:hypervmart官方网...

HostSlim,双E5-2620v2/4x 1TB SATA大硬盘,荷兰服务器60美元月

hostslim美国独立日活动正在进行中,针对一款大硬盘荷兰专用服务器:双E5-2620v2/4x 1TB SATA硬盘,活动价60美元月。HostSlim荷兰服务器允许大人内容,不过只支持电汇、信用卡和比特币付款,商家支持7天内退款保证,有需要欧洲服务器的可以入手试试,记得注册的时候选择中国,这样不用交20%的税。hostslim怎么样?HostSlim是一家成立于2008年的荷兰托管服务器商,...

HTTPS加密协议端口默认是多少且是否支持更换端口访问

看到群里网友们在讨论由于不清楚的原因,有同学的网站无法访问。他的网站是没有用HTTPS的,直接访问他的HTTP是无法访问的,通过PING测试可以看到解析地址已经比较乱,应该是所谓的DNS污染。其中有网友提到采用HTTPS加密证书试试。因为HTTP和HTTPS走的不是一个端口,之前有网友这样测试过是可以缓解这样的问题。这样通过将网站绑定设置HTTPS之后,是可以打开的,看来网站的80端口出现问题,而...

ftp下载工具为你推荐
可以发外链的论坛有直接能带链接的论坛?无线路由器限速设置如何设置无线路由器局域网限速?ghostxp3GhostXP3电脑公司特别版V499怎么安装bluestacksBlueStacks是什么?在PC上畅玩Android 45万款应用渗透测试渗透测试的专业服务依赖注入请问下依赖注入的三种方式的区别中小企业信息化中小企业如何进行企业信息化规划童之磊湖北中文在线数字出版有限公司怎么样?直播加速请问哪种播放器的可以播放加速,并且可以保存怎么升级ios6苹果6怎么升级最新系统
独立ip虚拟主机 org域名 vps代购 美国主机排名 重庆服务器托管 外国服务器 双11抢红包攻略 正版win8.1升级win10 免费吧 网络空间租赁 爱奇艺vip免费试用7天 广州服务器 河南移动网 如何用qq邮箱发邮件 爱奇艺vip免费领取 web服务器安全 512mb 空间登入 帽子云排名 免费个人网页 更多