队列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

妮妮云香港CTG云服务器1核 1G 3M19元/月

香港ctg云服务器香港ctg云服务器官网链接 点击进入妮妮云官网优惠活动 香港CTG云服务器地区CPU内存硬盘带宽IP价格购买地址香港1核1G20G3M5个19元/月点击购买香港2核2G30G5M10个40元/月点击购买香港2核2G40G5M20个450元/月点击购买香港4核4G50G6M30个80元/月点击购买香...

统计一下racknerd正在卖的超便宜VPS,值得推荐的便宜美国VPS

racknerd从成立到现在发展是相当迅速,用最低的价格霸占了大部分低端便宜vps市场,虽然VPS价格便宜,但是VPS的质量和服务一点儿都不拉跨,服务器稳定、性能给力,尤其是售后方面时间短技术解决能力强,估计这也是racknerd这个品牌能如此成功的原因吧! 官方网站:https://www.racknerd.com 多种加密数字货币、信用卡、PayPal、支付宝、银联、webmoney,可...

零途云月付31.9元起,香港cn2 gia线路

零途云是一家香港公司,主要产品香港cn2 gia线路、美国Cera线路云主机,美国CERA高防服务器,日本CN2直连服务器;同时提供香港多ip站群云服务器。即日起,购买香港/美国/日本云服务器享受9折优惠,新用户有优惠码:LINGTUYUN,使用即可打折。目前,零途云还推出性价比非常高香港多ip站群云服务器,有需要的,可以关注一下。零途云优惠码:优惠码:LINGTUYUN (新用户优惠,享受9折优...

ftp下载工具为你推荐
万维读者网用QQ邮箱向《读者》投稿具体格式中国电信互联星空电信的互联星空服务是什么?中国论坛大全中国十大网站是?怎么在qq空间里添加背景音乐怎样在qq空间里免费添加背景音乐?pw美团网电话是什么pw网站运营网络运营具体做什么呢彩信中心短信中心的号码是多少网易公开课怎么下载手机上的网易公开课的付费课程怎么下载??????xp系统停止服务XP系统停止服务后电脑怎么办?发邮件怎么发怎么发邮箱
cn域名价格 广东vps 工信部域名备案 域名备案网站 免费申请域名 lamp安装 老左博客 evssl证书 美国php空间 长沙服务器 网通ip e蜗 双拼域名 炎黄盛世 北京双线 免费申请个人网站 t云 美国独立日 路由跟踪 lamp什么意思 更多