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

DiyVM:2G内存/50G硬盘/元起线路香港vps带宽CN2线路,香港VPS五折月付50元起

DiyVM是一家低调国人VPS主机商,成立于2009年,提供的产品包括VPS主机和独立服务器租用等,数据中心包括香港沙田、美国洛杉矶、日本大阪等,VPS主机基于XEN架构,均为国内直连线路,主机支持异地备份与自定义镜像,可提供内网IP。最近,商家对香港机房VPS提供5折优惠码,最低2GB内存起优惠后仅需50元/月。下面就以香港机房为例,分享几款VPS主机配置信息。CPU:2cores内存:2GB硬...

GreenCloudVPS($30/年),500G大硬盘VPS,10Gbps带宽

GreenCloudVPS最近在新加坡DC2节点上了新机器,Dual Xeon Silver 4216 CPU,DDR4内存,10Gbps网络端口,推出了几款大硬盘VPS套餐,基于KVM架构,500GB磁盘起年付30美元。除了大硬盘套餐外,还加推了几款采用NVMe硬盘的常规套餐,最低年付20美元。不过需要提醒的是,机房非直连中国,尤其是电信用户ping值感人,包括新加坡DC1也是如此。大硬盘VPS...

HostYun:联通AS9929线路,最低月付18元起,最高500Mbps带宽,洛杉矶机房

最近AS9929线路比较火,联通A网,对标电信CN2,HostYun也推出了走联通AS9929线路的VPS主机,基于KVM架构,开设在洛杉矶机房,采用SSD硬盘,分为入门和高带宽型,最高提供500Mbps带宽,可使用9折优惠码,最低每月仅18元起。这是一家成立于2008年的VPS主机品牌,原主机分享组织(hostshare.cn),商家以提供低端廉价VPS产品而广为人知,是小成本投入学习练手首选。...

ftp下载工具为你推荐
iphone5解锁捡了个苹果5怎么解锁中国电信互联星空中国电信互联星空是什么!怎么取消渗透测试网站渗透测试怎么做?网站运营一般网站如何运营硬盘人什么叫“软盘人”和“硬盘人”?ios7固件下载ios7发布当天是否有固件下载qq空间打扮QQ空间打扮mate8价格现在买华为mate8高配划算吗srv记录如何解析一个SRV域名的ip虚拟机软件下载求一个免费虚拟机软件!!!请发送下载网站给我
海外域名注册 域名主机基地 荷兰服务器 technetcal cloudstack 服务器架设 建立邮箱 cn3 香港亚马逊 512mb 我的世界服务器ip 双线空间 免费蓝钻 好看的空间 accountsuspended 免费网站加速 windowsserver2012 傲盾代理 神棍节 iptables 更多