XX大学毕业设计题目:FTP客户端软件的设计与实现指导教师:XXX职称:副教授学生姓名: XXX 学号: 201XXXXXXXXX 专业:计算机科学与技术院(系):信息工程学院完成时间: 2014 年 5 月 9 日2014 年 5 月 9 日FTP客户端设计与实现摘要信息时代的到来,信息的交流变得越来越重要,而信息的交流离不开文件的传输。
基于FTP的文件传输系统意在搭建一个文件传输平台,使其在安全、透明、快捷的环境下来进行文件传输。
网络上进行信息共享或文件传输,都是基于某种协议而进行的,FTP是人们在网络中进行文件传输普遍采用的一种协议。
系统使用流行的Java作为开发语言,采用C/S模式作为网络结构,利用套接字编程实现多线程传输。
论文首先对现在常用的FTP进行了分析,然后介绍了系统的需求分析和设计过程,给出了服务器和客户端的功能模块及总体流程,最后给出了网络文件传输系统服务器和客户端的编码实现,并对系统各个功能的实现进行了测试,分析优缺点和总结。
通过测试,该系统实用、界面简单,能进行文件上传和下载并支持多线程,是一个比较好的文件传输系统。
关键词:文件传输协议,TCP/IP,多线程,套接字Design and implementation of an FTP clientAbstractThe arrival of the information age, the exchange of information is becoming increasingly important, and the exchange of information can not be separated file transfer . FTP-based file transfer system is intended to set up a file transfer platform , so in a safe , transparent and efficient environment down the file transfer.Information sharing on a network or file transfer , are carried out based on a protocol , FTP is a protocol for file transfer people to be widely used in the network. The system uses the popular Java as a development language , using C / S mode as the network structure , the use of socket programming multithreaded transfers.Firstly, on the now commonly used FTP analyzed, and then introduced the system requirements analysis and design process , gives the server and client modules and the overall process . Finally, network file transfer server and client code implementation, and realization of various functions system has been tested , analyzed and summarized the advantages and disadvantages .Through testing, the system is practical , simple interface , files can be uploaded and downloaded and supports multi-threading , is a good file transfer system . Keywords : file transfer protocol , TCP / IP, multi-threaded, socket目录第1章绪论 (6)1.1 课题背景 (6)1.2 课题现状 (7)1.3 本文组织方式 (8)第2章开发工具及关键技术 (8)2.1 开发工具 (8)2.2 关键技术 (10)2.2.1 C/S架构简介 (10)2.2.2 SOCKET网络编程 (11)2.2.3 FTP协议简介 (11)第3章客户端文件传输系统设计 (13)3.1客户端需求分析 (13)3.1.1 用户需求 (13)3.1.2 功能需求 (13)3.1.3 性能需求 (13)3.2客户端设计 (14)3.2.1 客户端整体模块 (14)3.2.2 客户端流程划分 (15)3.3 ftpclient类 (16)3.4实现思路 (17)第4章文件传输系统的实现 (18)4.1 界面模块实现 (18)4.2 登录界面实现 (18)4.3 浏览程序 (24)4.3.1浏览服务器端目录程序 (24)4.4 文件的上传与下载 (27)4.4.1文件下载程序 (27)4.4.2文件上传程序 (27)第5章系统测试及问题处理 (35)5.1测试环境 (35)5.2 测试结果 (36)5.2.1登录模块测试 (36)5.2.2系统兼容性测试 (36)5.3 测试总结 (36)结论 (38)参考文献 (39)致谢 (40)声明 (41)第1章绪论1.1 课题背景随着Internet在全世界的普及和发展,越来越多的用户将自己的计算机连入这个人类有史以来最庞大的网络中。
其中FTP(File Transfer Protocol)是Internet中最早提供的服务之一,目前仍在被人们广泛使用着。
如果说Internet 是如今的信息高速公路的话,FTP文件传输系统就是其上面的洲际车,它使用TCP/IP体系结构中应用层上的FTP协议在不同的计算机系统之间互相传输文件。
人们通常将文件传输服务称为FTP服务。
通过FTP服务,Internet上的用户可以从授权的异地计算机上获取所需的文件,也可以把本地文件传输到其他计算机上,这就为计算机之间双向传输文件提供了一种有效的手段。
FTP凭借其透明、快捷等特点,越来越多的人通过FTP能够在互联网上获得大量免费文件,FTP协议已经是Internet上应用最多的协议之一。
虽然FTP应用非常广泛,但在国内仍然缺乏高性能的产品。
由于商业原因,对国外FTP文件传输系统中的关键技术也知之甚少;同时国内对FTP系统的研究也是相对较少的,这从学术刊物上发表的相关文章就可以看出。
所以基于FTP的文件传输系统的研究是有一定意义的。
在FTP的众多功能中,安全性是一个突出且敏感的功能。
绝大多数企业、部门在使用FTP的时候,都会考虑这个问题,把它作为选购FTP文件传输系统产品的重要依据。
目前市场上流行的FTP系统,像CuteFtp、FtpCommander、FlashFtp等,都是国外的产品,虽然功能和性能等方面都还不错,但毕竟是通用的软件,任何人都可以得到并对其进行研究,从而可能给这些软件的安全性带来潜在的问题。
从保证安全性的角度出发,很有必要根据自身的需要开发一个自己的文件传输系统,这样就可以避免采用通用软件带来的危险。
另一方面,在实际使用国外产品的过程中,发现它们并不能很好的满足用户的要求。
比如说,访问日志功能,虽然绝大多数的国外产品都有,但是,这些日志功能都是固定的,不能够根据用户的要求来灵活的生成,而这个功能又是用户所必须的。
因此研究并实现FTP文件传输系统不仅有助于深入了解各种Innternet协议的实现细节,掌握FTP的技术,而且可实现软件的国产化,满足国内用户的安全性需求,对于社会和个人都有积极的意义。
本毕业设计将介绍FTP客户端系统的设计和开发工作,因此,文章将涵盖以下四个方面的内容:1.基础技术知识介绍; 2.文件传输系统的详细需求;3.介绍系统体的具实现;4.对最终系统进行测试。
通过这次课题,对整个开发过程有深入的了解,提高实践能力。
FTP将在未来的很长时间里作为主要的文件传输协议,使用前景仍然宽广,功能会更加强大。
1.2 课题现状互联网上传统的技术模式是C/S模式,FTP(File Transfer Protocol)文件传输服务就是这种模式的典型代表。
FTP是TCP/IP协议组中的协议之一,该协议是Internet文件传送的基础,它促进了文件的共享、鼓励间接或者隐式地使用远程计算机、向用户屏蔽不同主机中各种文件存储系统的细节以及提供可靠和高效的数据传输。
在TCP/IP协议中,FTP标准命令TCP端口号为21,Port方式数据端口为20。
FTP中主要采用了TCP传输控制协议(Transmission Control Protocol)和Telnet协议。
在网络普及的今天,政府机关、企业、学校等各行各业已经广泛地应用并建立了自己的FTP文件传输系统,FTP极大地提高了我们的工作效率和管理水平。
由于计算机网络的互联、互通的特性,为我们工作带来方便和效率。
普通的FTP 服务要求用户必须在要访问的计算机上有用户名和口令。
而Internet上最受欢迎的是称为匿名FTP的服务,用户在登录这些服务器时不用事先注册一个用户名和口令,而是以“anonymous”或“FTP”为用户名,自己的电子邮件地址为口令即可。
匿名FTP是目前Internet上进行资源共享的主要途径之一。
它的特点是访问方便,操作简单,容易管理。
Internet上有许多的资源都是以FTP的形势提供给大家使用的,包括各种文档、软件工具包等等。
FTP虽然是一种已经成熟且应用广泛的的技术,但是其仍然存在需要改进的地方。
主要有下面几个方面:(1) 服务器和客户端的功能被明确划分,如何在服务器端负载压力很大的情况下提高客户端的带宽资源的利用率。
(2) FTP使用明文传输,如何使用多种加密手段保全系统及客户信息的安全。
(3) FTP时延太高,如何保证文件传输速度的稳定。
(4) FTP的开放性,如何保证共享资源的内容健康。
1.3 本文组织方式本文从课题的的现状和背景入手,分析了FTP文件传输系统的现状和国内外的研究背景。
后续章节的主要内容安排如下:第二章开发工具及关键技术,主要讲述了本次设计用到的编程语言java和开发平台Jbuilder 2006,并对它们的特点进行了说明;接着阐述了本次设计用到的关键技术C/S模式与socket网络编程,最后对FTP协议进行了介绍。