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

[黑五]ProfitServer新加坡/德国/荷兰/西班牙VPS五折,不限流量KVM月付2.88美元起

ProfitServer已开启了黑色星期五的促销活动,一直到本月底,商家新加坡、荷兰、德国和西班牙机房VPS直接5折,无码直购最低每月2.88美元起,不限制流量,提供IPv4+IPv6。这是一家始于2003年的俄罗斯主机商,提供虚拟主机、VPS、独立服务器、SSL证书、域名等产品,可选数据中心包括俄罗斯、法国、荷兰、美国、新加坡、拉脱维亚、捷克、保加利亚等多个国家和地区。我们随便以一个数据中心为例...

hostkey俄罗斯、荷兰GPU显卡服务器/免费Windows Server

Hostkey.com成立于2007年的荷兰公司,主要运营服务器出租与托管,其次是VPS、域名、域名证书,各种软件授权等。hostkey当前运作荷兰阿姆斯特丹、俄罗斯莫斯科、美国纽约等数据中心。支持Paypal,信用卡,Webmoney,以及支付宝等付款方式。禁止VPN,代理,Tor,网络诈骗,儿童色情,Spam,网络扫描,俄罗斯色情,俄罗斯电影,俄罗斯MP3,俄罗斯Trackers,以及俄罗斯法...

小白云 (80元/月),四川德阳 4核2G,山东枣庄 4核2G,美国VPS20元/月起三网CN2

小白云是一家国人自营的企业IDC,主营国内外VPS,致力于让每一个用户都能轻松、快速、经济地享受高端的服务,成立于2019年,拥有国内大带宽高防御的特点,专注于DDoS/CC等攻击的防护;海外线路精选纯CN2线路,以确保用户体验的首选线路,商家线上多名客服一对一解决处理用户的问题,提供7*24无人全自动化服务。商家承诺绝不超开,以用户体验为中心为用提供服务,一直坚持主打以产品质量用户体验性以及高效...

ftp下载工具为你推荐
手游运营手册堡垒之夜新武器是什么 堡垒之夜新武器介绍图文解析在线漏洞检测求免费的漏洞扫描工具免费开通黄钻如何免费开通qq黄钻显卡温度多少正常显卡温度多少算正常?申请证书求高手教下怎么申请证书苹果5怎么越狱苹果5怎么越狱?bluestackbluestacks安卓模拟器有什么用虚拟专用网拨号网络与虚拟专用网的区别网站优化方案网站优化方案如何写?三星s8什么时候上市三星s8什么时候上市 三星s8上市时间
中国互联网域名注册 域名系统 轻博 panel1 什么是刀片服务器 最好的免费空间 东莞服务器 重庆电信服务器托管 河南移动梦网 114dns 免费个人网页 睿云 北京主机托管 免备案jsp空间 贵州电信 .htaccess forwarder vim 堡垒主机 租主机 更多