FTP客户端设计与实现
专用FTP客户端系统的设计与实现

( 27 0 2 0 牟第 年第 期
L B R T R S IN E A O A O Y CE C
2 7 月出 0 年4 0 版
专 用 F P客 端 T 户 系统 的设 计 与 实现
田胜 利
( 昌学 院计算 机科 学技 术 学 院 许
关键 词 : 三层 架构 ;r 局域 网教 学 F P; r
随着 I e e 的普及 , nm t t 信息的交互传输显得越来 越重要 。在 局域 网中 , 我们通 过共享 文件夹 , 利用 网 络邻居进行信息共享 、 。在广域网中, r e 传输 我 ̄ s 常 i 用 z P Fl Tas r r oa) r ( i r f o c1进行 网络上信息 的传 e neP t 输和管理 。笔者在教 学实践 中发现无论 是利 用 网络 邻居还是 F P r 进行信息传输和管理 , 在实际应用中 都 有不尽如 人意 的地 方 , 比如 : 学 生 的上 机课 上 , 在 老师会布置一 些 实验 作 业 , 些 实验 作业 同学们 往 这 往一次两次课做不完。因此, 同学们会把未做完 的 作业保存起来 , 下次接着做。等下次上课时 , 同学很 可 能不会再使用上 次保存文 件 的机 器 。即便使用 的 是 同一 台机器 , 也很 可 能会 发现 自己的作 业 已被 删 除。并且 有 的机房 为 了安全 管理 , 取 了一 些措 施 , 采 禁止使用软盘或使用硬盘保护卡 , 使得信息不能保 存在 软盘 或本地机 器上 。有 的机房还 有可能 使用 的 是无盘工作 站 , 也会 出现类 似 的 问题 。平 时老 师会 在教师机上 安装 F P软件并 为 同学们建 立公用 的用 r 户名 、 密码 , 求 同学们 把作业通过 F P上传 到教师 要 T r 机上。因为利用 F P T 上传的信息 , r 你自己上传 、 可能 需 要下载 、 更新 或删 除 , 而其他 同学 同样 有这些 操作 权限, 若老师 为每个 同学建 立一个 用户 名 、 密码 且赋 予不同的权限 , 以解决这一问题。但是这样做比 可 较 麻烦 ( 工作 量 较 大 ) 。有 时 任课 老 师 会 在 教师 机 上 为每个 同学建 立共享 文件夹设置 共享 密码并 告诉 该同学, 使之通过网上邻居进行信息传输 , 显然该方 法也 比较麻烦且存 在一些 其它 问题 。这样 的例子 很 多 , 就不一一枚举 。鉴 于以上 情况 , 过认 真思 这里 经 考, 笔者 找到 了一种 解 决上 述 问 题 的方 法 。那 就 是 做一个专 用 的 F P客户 端软 件 , 用户 可 以 自己管 T r 使 理 自己上 传 的信息并 设置操作 权限 。 1 目前流行 的 F P服务器 软件和客 户端软件 . T r 目前 F P T 服务器端的软件 比较多 , U i操作 r 象 n x 系统 下 的 WU ̄P I'D软 件 、 no s操 作 系 统 下 的 q Widw Sr u( 国生 产 ) ev— 美 的软件 、adn l D( 国台湾 R i F' 中 e P
FTP(文件传输协议)的原理与实现

FTP(文件传输协议)的原理与实现FTP,即文件传输协议(File Transfer Protocol),是一种用于在计算机网络中进行文件传输的应用层协议。
它允许用户通过客户端和服务器之间进行文件的上传、下载和删除等操作。
本文将介绍FTP的原理和实现。
一、FTP的原理FTP的原理基于客户端-服务器(client-server)模型。
客户端和服务器通过FTP协议进行通信,客户端发出命令请求,服务器进行相应的处理并返回结果。
FTP采用不同的连接来进行数据传输和命令传输。
1. 命令传输连接命令传输连接是客户端和服务器之间进行命令交互的通道。
客户端通过该连接发送各种FTP命令,如登录、目录操作、文件操作等。
服务器接收到命令后执行对应的操作,并返回结果给客户端。
该连接使用TCP协议的默认端口号21。
2. 数据传输连接数据传输连接用于在客户端和服务器之间传输文件内容。
FTP支持两种方式的数据传输:主动模式(Active Mode)和被动模式(Passive Mode)。
- 主动模式:客户端向服务器发起数据传输连接,在该连接上进行文件的传输。
客户端随机选择一个端口并通过PORT命令告知服务器。
服务器返回连接确认请求,然后在该连接上进行数据的传输。
主动模式需要客户端开放一个端口用于接收服务器的连接。
- 被动模式:服务器向客户端发起数据传输连接,在该连接上进行文件的传输。
客户端发送PASV命令给服务器,服务器在随机开放的端口上等待客户端的连接。
客户端接收到服务器的地址和端口信息后,通过该地址和端口和服务器进行数据传输。
被动模式通过服务器来建立数据传输连接,适用于客户端无法开放端口的情况(如在防火墙后)。
通过命令传输连接和数据传输连接的组合,客户端和服务器可以实现文件的上传、下载和删除等功能。
二、FTP的实现FTP的实现涉及到客户端和服务器端的开发。
下面分别介绍两者的实现要点。
1. 客户端实现客户端实现主要包括以下几个方面的工作:- 用户界面设计:客户端需要提供一个用户界面供用户输入FTP服务器地址、用户名和密码等信息,并显示服务器返回的文件列表及操作结果等信息。
FTP客户端设计与开发

无忧无虑毕设网-大学生毕业设计站,免费毕业设计论文,无忧无虑毕设网大学生毕业设计,出售各类毕业设计源码,论文,程序源码,网站源码,免费视频教程,我们将竭诚为您服务!FTP客户端设计与实现摘要互联网的一大特点是实现信息共享,文件传输是信息共享的十分重要的内容之一。
随之出现了许多FTP服务器来共享一些信息资源,编写一个操作简单,方便的FTP客户端来下载这些资源受到了人们的极大欢迎。
FTP客户端软件是在了解FTP工作原理后,利用C#语言来设计和开发的。
FTP客户端分为连接模块、文件管理模块、文件传输模块和辅助管理模块。
连接模块实现主机与服务器的连接的功能;文件管理模块实现新建文件、删除文件等功能;文件传输模块实现主机与服务器连接成功后上传和下载文件功能。
辅助管理模块实现一些相关功能如:读写配置INI文件。
该FTP客户端软件达到了使用方便的目标,希望开发软件的经验能为使用.NET设计开发Windows应用程序FTP客户端软件的初学者提供一些帮助。
关键词:.NET;C#;文件传输协议;客户端The Design and Implementation of FTP ClientAbstractThe predominant characteristic of network is information resources sharing. Document transmission is an important component element. Because of this, many File Transfer Protocol (FTP) servers appeared, and won its way into favor.C# programming language is used to develop the FTP client software after comprehending the FTP working principle. And this FTP client software is made up of linking module、file management module、file transmission module and assisted management module. Linking module performs the functions of linking a host and a server; functions of operating on files are implemented in file management module; transmitting files is easy through applying file transmission module; assisted management module mainly performs the functions of reading and writing the INI files. This FTP client software is usable. And I hope the experience from this software development can do some help to the learners who'll devote their efforts to FTP client software development.Key words:.NET; C#; FTP, Client目录论文总页数:21页1引言 (1)1.1 课题背景 (1)1.2 国内外研究现状 (1)1.3 本课题研究的意义 (1)1.4 本课题的研究方法 (2)2技术背景 (2)2.1 .NET技术简介 (2)2.2 V ISUAL S 简介 (2)2.3 开发语言选择 (2)2.4 FTP简介 (3)2.5 FTP工作模式 (4)3FTP软件需求分析 (6)3.1 需要完成目标 (6)3.2 功能需求 (7)3.3 环境需求 (7)4 FTP软件详细设计与实现 (7)4.1 软件总体分析与设计 (7)4.2 各模块具体设计 (7)4.2.1 连接管理设计 (7)4.2.2 文件管理设计 (9)4.2.3 文件传输设计 (9)4.2.4 辅助功能设计 (10)4.3 模块的程序实现 (10)4.3.1 连接管理的程序实现 (10)4.3.2 文件管理的程序实现 (11)4.3.3 文件传输的程序实现 (12)4.3.4 辅助功能的程序实现 (13)5软件测试 (15)5.1 测试前分析 (15)5.2 测试的过程与分析 (15)5.3 测试小结 (17)结论 (18)参考文献 (19)致谢 (20)声明 (21)1引言1.1课题背景FTP是Internet上最早也是最广的应用,直到今天它仍是最重要和最基本的应用之一。
FTP客户端软件的设计与实现

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客户端的设计与实现

FTP客户端的设计与实现1. 简介FTP(File Transfer Protocol)是一种用于文件传输的标准协议。
FTP客户端是指使用FTP协议与FTP服务器进行通信并传输文件的程序。
在本文中,我们将探讨FTP客户端的设计与实现。
2. 设计2.1 功能需求FTP客户端的主要功能需求包括:1.连接到FTP服务器2.在FTP服务器和本地电脑之间传输文件3.列出FTP服务器上的文件和目录4.创建和删除FTP服务器上的目录5.重命名FTP服务器上的文件6.支持多种操作系统(如Windows、Linux等)2.2 架构设计FTP客户端采用MVC(Model-View-Controller)模式来设计,其中:•Model层:管理FTP客户端的业务与数据逻辑。
提供FTP相关的API,封装了FTP协议的底层实现。
•View层:处理和呈现用户界面。
•Controller层:处理用户请求,调用Model层实现相关业务逻辑。
2.3 技术选型FTP客户端的技术选型如下:•编程语言:Java•GUI框架:JavaFX•FTP库:Apache Commons Net•构建工具:Maven•版本控制:Git2.4 待解决问题FTP客户端在设计中会遇到以下问题:1.如何扩展支持更多的FTP协议?2.如何实现可靠的文件传输?3.如何提高用户界面的体验?3. 实现3.1 界面实现使用JavaFX框架实现FTP客户端的用户界面。
主要界面包括:•登录界面:输入FTP服务器地址、用户名和密码登录FTP服务器。
•主界面:显示FTP服务器上的文件和目录,并提供文件传输和操作的操作界面。
3.2 功能实现FTP客户端通过Apache Commons Net库实现FTP底层协议。
实现的功能包括:1.连接到FTP服务器FTPClient ftp = new FTPClient();ftp.connect(server, port);ftp.login(username, password);2.在FTP服务器和本地电脑之间传输文件ftp.retrieveFile(remoteFile, localFile);ftp.storeFile(remoteFile, localFile);3.列出FTP服务器上的文件和目录FTPFile[] files = ftp.listFiles(remoteDir);4.创建和删除FTP服务器上的目录ftp.mkd(remoteDir);ftp.rmd(remoteDir);5.重命名FTP服务器上的文件ftp.rename(from, to);4. 总结通过对FTP客户端的设计与实现,我们了解了FTP协议的底层实现和FTP客户端的主要功能。
FTP客户端与服务器设计与实现课设报告

本科生专业方向应用实训科研训练FTP客户端与服务器的设计与实现Design and implementation of and server学生姓名蒲凤专业软件工程学号140521221指导教师高培成尹大力祝勇学院计算机科学技术二〇一七年七月摘要随着互联网技术的飞速发展,信息共享的时代己经到来。
在实现数据传输与信息共享的诸多方式中,FTP无疑是应用最广的一种方式。
FTP协议是计算机网络中的应用层协议,提供了可靠的文件传输功能,并且具有跨平台特性,两个不同类型的操作系统只要都支持FTP协议就可以进行文件传输工作。
因此,探讨文件传输协议(FTP)的内容和工作原理,分析F'I'P客户端与服务器的连接过程及F'I'P请求与应答工作模式,设计C/S架构下的FTP系统的实现方案,在.NET平台利用C#语言搭建起FTP系统的窗体界面,并且使用.NET类库实现了文件上传、删除和修改等功能。
关键词:FTP协议服务器客户端 .NETAbstractWith the rapid development of Internet technology, the era of information sharing has arrived. In many ways of realizing data transmission and information sharing, undoubtedly the most widely used method. is an application layer protocol in computer network, provides a reliable function, and has the characteristics of cross platform, two different types of operating system as long as can support the for work. Therefore, to explore the protocol (FTP) content and working principle, analysis of the connection process and the F'I'P request and response mode F'I'P the client and the server implementation scheme of design under the C/S framework, the window body platform using C# language to build , and use Library to achieve the , delete and modify functions.Key words: ;server;client;.net目录摘要 (I)ABSTRACT ........................................................... I I 第一章绪论 (1)1.1研究背景 (1)1.2国内外研究现状 (2)1.3课程设计主要研究内容和架构 (2)第二章需求分析 (2)2.1需求分析 (3)2.2功能列表 (3)2.3系统权限 (3)第三章技术方案 (4)架构平台 (4)3.1.1 .NET的体系结构 (4)3.1.2 .NET框架的特色 (4)3.2开发工具 (5)3.2.1 Visual Studio (5)第四章总体设计 (6)4.1系统体系结构模型 (6)4.2FTP系统模型 (6)4.3系统工作流程设计 (7)4.4系统功能模块介绍 (8)4.2.1登陆与注销 (8)4.2.2模式选择 (9)4.2.3文件管理 (9)4.2.4目录管理 (9)第五章详细设计 (10)5.1登陆与注销 (10)5.2文件管理 (11)5.2.1文件下载 (11)5.2.2文件上传 (11)5.2.3 文件重命名 (12)5.2.4 文件删除 (12)5.4目录管理 (13)5.4.1目录显示 (13)5.4.2目录切换 (13)5.4.3目录添加 (14)5.4.4目录重命名 (15)5.4.5目录删除 (15)第六章软件测试 (16)6.1测试方法 (16)6.2测试用例 (16)6.3测试过程及结果 (17)第七章总结 (19)参考文献 (20)附录 (21)第一章绪论网络的首要目的就是实现信息共享,文件传输是其中重要的一个方面,随着Internet的迅猛发展,信息数据的传输量大大增加,数据的网络传输显得越来越重要。
FTP客户端的设计与实现

FTP客户端的设计与实现摘要:FTP(File Transfer Protocol)即文件传输协议是TCP/IP协议族中的一个应用层协议。
FTP客户端利用TCP的可靠传输服务,减少了不同文件系统间的不兼容性,实现了文件的传送功能;而且它提供了直观的文件传输操作方式,用户只需要使用鼠标拖动选择就可以完成相关操作。
文章主要介绍了FTP的相关知识、Visual Basic各种控件以及Windows API函数的调用等内容。
在此基础上文章最后介绍了如何使用VB完成FTP客户端应用程序的开发。
关键词:VB ; FTP ; Windows API0 引言FTP(File Transfer Protocol)协议即文件传输协议是TCP/IP体系结构中的一个重要协议,专门用于局域网或Internet中服务器和客户端之间进行文件传输。
FTP协议利用TCP的可靠传输服务,减少了不同文件系统间的不兼容,实现了文件的传送功能。
FTP极大的丰富了我们的网络生活,成为互联网上不可缺少的服务方式之一[1]。
1 设计内容FTP使用客户/服务器方式,本课题就是设计一个FTP客户端程序,其具有以下基本功能:能完成FTP链接的打开和关闭;能实现本地和远程目录的浏览;能执行文件的上传和下载等有关操作。
2 开发工具简介2.1 Visual Basic简介Basic 发展到今天已经有很多版本,如 GW-Basic 、QBasic 、Visual Basic 等等。
其中Visual Basic 是最容易学习与应用的程序语言之一,而且其功能也非常强大。
Visual Basic 6.0自带的一些功能控件可以帮助我们实现网络通信的功能,是我们网络编程中的一个重要的编程工具。
2.2 Windows API函数介绍Win32 API也就是Microsoft Windows 32位平台的应用程序编程接口。
Windows API可以提供形形色色的服务,凡是在Windows操作系统环境下开发的应用程序,都可以调用Windows API。
FTP客户端(1)

目录1 引言 (1)2 FTP简介 (1)2.1 FTP简介 (1)2.2 FTP工作原理 (1)3 系统分析及配置 (2)3.1 Ftp客户端设计思想 (2)3.2服务端配置-操作系统IIS安装 (3)4 FTP客户端概要设计 (5)4.1系统模块 (5)4.2系统功能 (5)4.3主要数据结构分析 (5)4.4程序界面设计 (6)5 详细设计及主要代码 (7)5.1设置列表控件的风格 (7)5.2对话框初始化 (8)5.3实现客户端连接到FTP服务器 (8)5.4列出FTP服务器目录 (9)5.5退出FTP服务器 (11)6 测试运行 (12)6.1登陆界面 (12)6.2列出服务器目录 (12)6.3退出服务器 (12)7总结 (12)参考文献 (13)1 引言FTP是Internet上用来传送文件的协议,它是为了我们能够在Internet上互相转送文件而制定的文件转送标准,规定了Internet上文件如何传送,通过FTP协议,我们可以跟Internet 上的FTP服务器进行文件上传或下载。
本实验以实现一个简单的FTP客户端为目标,实验目的是:1)熟悉网络应用层的传输协议,增强对FTP协议的了解;2)提高自己的动手能力以及编程能力;3)掌握vc和提高对MFC界面制作能力。
本次试验的要求如下:1)要求实现的程序为图形化界面,可以输入FTP服务的相关信息(包括IP地址、用户名与密码),输出交互过程中的FTP命令与响应信息,以及从FTP服务器的根目录获得的文件(或目录)列表。
2)要求遵循RFC959的相关FTP协议规定。
只要求实现USER、PASS、PASV、LIST 和QUIT命令。
点击Connect按钮,实现USER与PASS命令;点击LIST按钮,实现PASV 与LIST命令;点击Quit按钮,实现QUIT命令。
3)要求有良好的编程规范与注释信息。
4)要求有详细的说明文档,包括程序的设计思想、工作流程、关键问题等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《网络编程技术课程设计》论文2012 — 2013学年第二学期题目:FTP客户端设计与实现专业班级:软件工程Java10-06班组员:指导老师:日期:2013-07-04目录摘要 (2)关键词 (2)1.引言 (2)2.FTP协议分析 (2)2.1FTP工作原理 (2)2.2FTP工作模式 (4)2.3FTP传输模式 (6)2.3.1ASCII传输方式 (6)2.3.2二进制传输方式 (6)3.FTP客户端的总体设计 (6)3.1设计目的及工具的选择 (6)3.1.1设计目的 (6)3.1.2设计工具 (7)3.1.3FtpClient类 (7)3.2客户端主要模块设计 (7)3.2.1客户端功能模块 (8)3.2.2客户端界面设计 (9)3.3数据流程图 (9)3.3.1客户端连接流程图 (9)3.3.2上传子模块流程图 (11)3.3.3下载子模块流程图 (12)4.FTP客户端程序实现 (14)4.1客户端显示界面实现 (14)4.1.1数据输入界面详细设计 (14)4.1.2服务器文件信息显示界面详细设计 (14)4.1.3上下载队列显示界面和信息显示界面详细设计 (15)4.1.4操作按钮模块详细设计 (15)4.2功能模块实现 (16)4.2.1连接服务器 (16)4.2.2上传文件 (16)4.2.3下载文件 (17)5.功能运行测试 (17)6.结语 (20)参考文献 (21)附录 (22)FTP客户端的设计与实现摘要:FTP是Internet上用来传送文件的协议。
它是为了我们能够在Internet上互相传送文件而制定的文件传送标准,规定了Internet上文件如何传送。
通过FTP 协议,我们就可以跟Internet上的FTP服务器进行文件的上传或下载。
本文以实现一个简单易用的FTP客户端为目标,通过分析FTP协议的基本工作原理和FTP的数据传输原理,研究如何使用Java工具对FTP客户端进行设计,选择Java类库中的FtpClient类来实现FTP客户端程序的上传下载等主要功能,并用eclipse软件提供的一个支持可视化编程的开发环境,从而实现了对FTP客户端的开发。
关键词:FTP协议 ,工作原理,FtpClient,上传下载引言目前,FTP服务已经是网络上广泛使用的一种服务了,它是建立在FTP协议上的用于网络环境下进行文件传输的一种文件传输系统,几乎可以传输各种类型的文件,如文本文件,声音文件,图像文件等。
一个文件传输系统有服务器端程序和客户端程序共同组成的,客户端程序提供用户操作的界面并完成文件的上传和下载。
在网络应用中,FTP有着非常重要的地位,在Internet中一个十分重要的就是资源,而各种各样的资源大多数都是放在FTP服务器中的,为了获得这些资源,我们必须使用FTP客户端软件。
目前流行的有cuteFTP,WS_FTP,ByteCatcher,FTP Voyage等。
为了方便用户的使用,本文将介绍一种基于Java 的FTP客户端程序的设计与实现。
本文首先分析了FTP协议,FTP的工作原理等,然后介绍了如何使用Java 工具来设计和实现一个简单的FTP客户端。
使用本FTP客户端,可以使用户轻松的下载、上传网络资源。
2.FTP协议分析2.1FTP的工作原理FTP(FileTransferProtocol),是文件传输协议的简称。
用于Internet上的控制文件的双向传输。
同时,它也是一个应用程序。
用户可以通过它把自己机器与世界各地所有运行FTP协议的服务器相连,访问服务器上的资源和信息。
FTP协议在TCP/IP协议栈中的位置如表1:表1 TCP/IP协议栈当启动FTP从远程计算机拷贝文件时,事实上启动了两个程序:一个本地机器上的FTP客户端程序,它向FTP服务器提出拷贝文件的请求。
另一个是启动在远程计算机的上的FTP服务器程序,它响应请求把你指定的文件传送到你的计算机中。
FTP采用“客户端/服务器”方式,用户要在自己的本地计算机上安装FTP 客户端程序。
从根本上说,FTP协议就是在网络中各种不同的计算机之间按照TCP/IP协议来传输文件。
FTP协议采用客户端/服务器(Client/Sever)模式,由FTP客户端程序和FTP服务器端程序组成。
使用时,先启动FTP客户端程序与远程主机建立连接,然后向远程主机发出传输命令,远程主机在收到命令后就给予响应,并执行正确的命令。
但是FTP有一个根本的限制,那就是,如果用户在某个主机上没有注册获得授权,即没有用户名和口令,就不能与该主机进行文件传输。
但匿名FTP服务器除外,它能够使用户与远程主机建立连接并以匿名身份从远程主机上拷贝文件,而不必是该远程主机的注册用户。
用户使用特殊的用户名“Anonymous”或“guest”就可有限制地访问远程主机上公开的文件。
现在许多系统要求用户将Emai1地址作为口令,以便更好地对访问者进行跟综。
出于安全的目的,大部分匿名FTP主机一般只允许远程用户下载文件,而不允许上载文件。
也就是说,用户只能从匿名FTP主机拷贝其需要的文件而不能把文件拷贝到匿名FTP主机。
另外,匿名FTP主机还采用了其他一些保护措施以保护自己的文件不至于被用户修改和删除,并防止计算机病毒的侵入。
匿名FTP一直是Internet 上获取信息资源的最主要方式,在Internet成千上万的匿名FTP主机中存储着无以计数的文件,这些文件包含了各种各样的信息、数据和软件。
人们只要知道特定信息资源的主机地址,就可以用匿名FTP登陆。
2.2 FTP工作模式FTP采用C/S(客户端/服务器)模式进行通信,但与其他的C/S模式网络通信协议又有一个很大的区别。
通常在进行HTTP通信或是TELNET通信的时候,只需要一个端口进行通信。
即客户端只需要连接一个端口进行数据通信。
如TELNET 的默认端口是23,用户从头到尾都只需使用这个端口。
但是FTP通信除了有一个默认端口21之外,还需要其他的端口。
其中默认端口(21)主要进行控制连接,进行命令协议和服务器端的响应码的传输;另外一个非标准端口主要进行数据传递,如文件的上载、下载等。
至于非标准端口的产生则要根据用户选择的连接模式而定:如果客户选择的是主动模式(PORT),则需要用户端提供给服务器一个IP地址和一个非标准端口;而如果用户采用被动模式(PASV),则服务器端需要提供给客户端一个IP地址和一个非标准端口。
下表是几个著名的TCP端口号:表2 TCP端口号FTP中字节大小有两个:逻辑字节大小和用于传输的字节大小。
后者通常是8位,而前者可不一定是多少了。
传输字节不必等于逻辑字节大小,也不必对数据结构进行解释。
控制连接是建立在USER-PIT和SERVER-PI之间用于交换命令与应答的通信链路。
数据连接是传输数据的全双工连接,传输数据可以发生在服务器DTP和用户DTP之间也可以发生在两个服务器DTP之间,FTP可以传输非连续的文件,这些文件的一部分称为页。
服务器DTP代表一种传输过程,它通常处于“主动”状态,它和侦听端口建立数据连接,它还可以为传输和存储设置参数,并根据PI的指令传输数据。
当然,DTP也可以转入“被动”状态。
服务器FTP进程,它是和用户FTP进程一起工作的,它由PI和DTP组成。
至于用户FTP 进程则是由PI,DTP和用户接口组成的。
具体工作模式如图1所示:服务器-FTP 用户—FTP图1FTP工作模式图上图中用户PI开始控制连接,控制连接与Telnet协议很象。
在开始阶段,标准FTP命令由用户PI产生并通过控制连接传送到服务器进程。
服务器PI向用户PI返回标准应答。
FTP命令指定数据连接参数和文件系统操作。
用户DTP在特定数据端口侦听,服务器开始数据连接并以指定的参数开始数据传输。
数据端口不必在开始FTP命令的机器上,但用户或用户FTP进程必须确定它在指定的数据端口上侦听.这个数据连接是全双工的。
2.3FTP传输模式FTP协议的任务是从一台计算机将文件传送到另一台计算机,它与这两台计算机所处的位置、联接的方式、甚至是是否使用相同的操作系统无关。
假设两台计算机通过ftp协议对话,并且能访问Internet,你可以用ftp命令来传输文件。
每种操作系统使用上有某一些细微差别,但是每种协议基本的命令结构是相同的。
FTP的传输有两种方式:ASCII传输模式和二进制数据传输模式。
2.3.1 ASCII传输方式假定用户正在拷贝的文件包含的简单ASCII码文本,如果在远程机器上运行的不是UNIX,当文件传输时ftp通常会自动地调整文件的内容以便于把文件解释成另外那台计算机存储文本文件的格式。
但是常常有这样的情况,用户正在传输的文件包含的不是文本文件,它们可能是程序,数据库,字处理文件或者压缩文件(尽管字处理文件包含的大部分是文本,其中也包含有指示页尺寸,字库等信息的非打印字符)。
在拷贝任何非文本文件之前,用binary命令告诉ftp逐字拷贝,不要对这些文件进行处理。
2.3.2二进制传输方式在二进制传输中,保存文件的位序,以便原始和拷贝的是逐位一一对应的。
即使目的地机器上包含位序列的文件是没意义的。
例如,macintosh以二进制方式传送可执行文件到Windows系统,在对方系统上,此文件不能执行。
如果你在ASCII方式下传输二进制文件,即使不需要也仍会转译。
这会使传输稍微变慢,也会损坏数据,使文件变得不能用。
如果你知道这两台机器是同样的,则二进制方式对文本文件和数据文件都是有效的。
3 FTP客户端总体设计3.1设计目的及工具选3.1.1 设计目的FTP早已应用在网络的各个方面,比如我们在访问网络上的资源时,经常会遇到需要连接FTP服务器来下载,或者你制作了一个网站,想要将其上传至服务器,让大家能够访问它,这个时候就会用到FTP客户端。
虽然平时使用windows自带的IE浏览器即可实现对FTP服务器的访问,但是IE只是个很粗糙的FTP 客户端。
IE浏览器在6.0以下的版本不支持PASV方式访问服务器,而且IE浏览器在登录FTP服务器的时候,无法查看返回的信息,在出错的时候,无法找到错误的原因,因此在使用上很不方便。
现在大多数的FTP客户端软件都是收费版的,而且以英文版居多,使用上操作很复杂,目前流行的有CoreFtp、AceFtp、FtpVoyager等,但是大多数用户并不习惯使用这些软件。
本文所设计的FTP客户端则适合大多数用户使用,界面设计的很简单,使用户可以一目了然,而且具备FTP客户端的基本功能,可以作为下载、上传文件的工具来使用。
3.1.2 设计工具程序设计中用到的主要工具就是Java,Java是SUN公司开发的一种面向对象的新一代网络编程语言,它可以在各种不同的机器、操作系统的网络环境中进行开发,具有解释型语言(如Basic语言)和编译型语言(如C语言)的特性。