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

瓜云互联-美国洛杉矶高防CN2高防云服务器,新老用户均可9折促销!低至32.4元/月!

瓜云互联一直主打超高性价比的海外vps产品,主要以美国cn2、香港cn2线路为主,100M以内高宽带,非常适合个人使用、企业等等!安全防护体系 弹性灵活,能为提供简单、 高效、智能、快速、低成本的云防护,帮助个人、企业从实现网络攻击防御,同时也承诺产品24H支持退换,不喜欢可以找客服退现,诚信自由交易!官方网站:点击访问瓜云互联官网活动方案:打折优惠策略:新老用户购买服务器统统9折优惠预存返款活动...

美国服务器20G防御 50G防御 688元CN2回国

全球领先的IDC服务商华纳云“美国服务器”正式发售啦~~~~此次上线的美国服务器包含美国云服务器、美国服务器、美国高防服务器以及美国高防云服务器。针对此次美国服务器新品上线,华纳云也推出了史无前例的超低活动力度。美国云服务器低至3折,1核1G5M低至24元/月,20G DDos防御的美国服务器低至688元/月,年付再送2个月,两年送4个月,三年送6个月,且永久续费同价,更多款高性价比配置供您选择。...

青云互联:美国洛杉矶CN2弹性云限时八折,15元/月起,可选Windows/可自定义配置

青云互联怎么样?青云互联是一家成立于2020年6月的主机服务商,致力于为用户提供高性价比稳定快速的主机托管服务,目前提供有美国免费主机、香港主机、香港服务器、美国云服务器,让您的网站高速、稳定运行。美国cn2弹性云主机限时8折起,可选1-20个IP,仅15元/月起,附8折优惠码使用!点击进入:青云互联官方网站地址青云互联优惠码:八折优惠码:ltY8sHMh (续费同价)青云互联活动方案:美国洛杉矶...

ftp下载工具为你推荐
百度k站被百度k站之后你一般是怎么处理的郭吉军一个新的品牌,要怎么做网络推广显卡温度多少正常显卡温度多少正常9flashIE9flash模块异常。童之磊湖北中文在线数字出版有限公司怎么样?网易公开课怎么下载如何将网易公开课下载到电脑上?畅想中国用“心系祖国情,畅想中国梦”为题目的800字作文雅虎天盾我装了360安全卫士,原来的雅虎天盾需不需要卸载2012年正月十五2012年正月十五上午9点27分出生的女孩儿五行缺什么,命怎么样如何快速收录谁知道怎么快速被搜索引擎快速收录啊?
cn域名个人注册 美国主机论坛 mediafire下载 警告本网站 eq2 英文站群 赞助 域名和空间 qq对话框 百度云1t web服务器安全 申请网页 网站加速软件 lamp兄弟连 免费php空间 nnt 卡巴斯基免费版 饭桶 rsync 网络安装 更多