FTP客户端软件的设计与实现(3)

2019-06-02 13:15

2.2.2 SOCKET网络编程

所谓socket通常也称作\套接字\,应用程序通常通过\套接字\向网络发出请求或者应答网络请求。socket的英文原义是“孔”或“插座”。作为BSD UNIX的进程通信,取后一种意思。用于描述IP地址和端口,是一个通信链的句柄。在Internet上的主机运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。Socket正如其英文原意那样,像一个多孔插座。一台主机犹如布满各种插座的房间,每个插座有一个编号,有的插座提供220伏交流电, 有的提供110伏交流电,有的则提供有线电视节目。 客户软件将插头插到不同编号的插座,就可以得到不同的服务。

使用socket套接字,利用TCP/IP或者UDP协议,实现几个机器之间的通信。一般使用C/S结构。以TCP/IP为例:首先建立一个服务器,步骤如下:socket()创建一个socket,bind()绑定socket得到一个端口,listen()监听端口,accept()等待客户端的连接。客户端程序:socket()创建一个socket,可以绑定也可以不绑定,然后connect()连接到服务器端。Socket又分为阻塞式的和非阻塞式的。阻塞式的就是服务器端等待连接直到连接上,不然一直挂起。

2.2.3 FTP协议简介

FTP 是 TCP/IP 协议组中的协议之一,是英文File Transfer Protocol的缩写。该协议是Internet文件传送的基础,它由一系列规格说明文档组成,目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。简单的说,FTP就是完成两台计算机之间的拷贝,从远程计算机拷贝文件至自己的计算机上,称之为“下载(download)”文件。若将文件从自己计算机中拷贝至远程计算机上,则称之为“上载(upload)”文件。在TCP/IP协议中,FTP标准命令TCP端口号为21,Port方式数据端口为20。

从根本上说,FTP协议就是在网络中各种不同的计算机之间按照TCP/IP协议来传输文件。FTP协议采用客户机/服务器 (Client/Sever)模式,由FTP客户端程序和FTP服务器端程序组成。使用时,先启动FTP客户端程序与远程主机建

立连接,然后向远程主机发出传输命令,远程主机在收到命令后就给予响应,并执行正确的命令。但是FTP有一个根本的限制,那就是,如果用户在某个主机上没有注册获得授权,即没有用户名和口令,就不能与该主机进行文件传输。但匿名FTP服务器除外,它能够使用户与远程主机建立连接并以匿名身份从远程主机上拷贝文件,而不必是该远程主机的注册用户。用户使用特殊的用户名“Anonymous”或“guest”就可有限制地访问远程主机上公开的文件。现在许多系统要求用户将Emai1地址作为口令,以便更好地对访问者进行跟踪。出于安全的目的,大部分匿名FTP主机一般只允许远程用户下载(download)文件,而不允许上载(upload)文件。也就是说,用户只能从匿名FTP主机拷贝其需要的文件而不能把文件拷贝到匿名FTP主机。另外,匿名FTP主机还采用了其他一些保护措施以保护自己的文件不至于被用户修改和删除,并防止计算机病毒的侵入。匿名FTP一直是Internet上获取信息资源的最主要方式,在Internet成千上万的匿名FTP主机中存储着无以计数的文件,这些文件包含了各种各样的信息、数据和软件。人们只要知道特定信息资源的主机地址,就可以用匿名FTP登录。

FTP客户端设计的原理,FTP使用两条TCP连接来完成文件传输:控制连接与数据连接。控制连接用于传输控制,数据连接用于数据输送。在服务器启动后,服务器就会在端口21等待客户的连接请求,有用户需要传输文件时,客户与服务器的端口21建立一个控制连接,用来传送客户的命令和服务器的应答,该连接一直保持到客户与服务器通信结束为当客户发出数据传输命令时,服务器会主动与客户建立数据连接,并与其进行数据交换。

客户端用户并不直接处理控制连接上的FTP命令和FTP响应,而是由两个协议解释器进行处理。用户接口为客户端用户提供一定形式的输入界面,接收用户的命令,将其转换成标准的FTP命令,最终将控制连接上的FTP响应转换成用户可理解的方式。在客户与服务器的整个连接期间,控制连接必须保持,而数据连接却可以根据请求动态地建立和关闭。在最常用的流模式中,文件结束是用数据连接的关闭来表示的,换句话说,每传输一个文件或文件列表,系统就会再建立一个新的数据连接。

图2 FTP使用的两个TCP连接

第3章 客户端文件传输系统设计

3.1客户端需求分析

3.1.1 用户需求

软件要简单易上手,能够登录到用户指定的服务器上,进行访问和数据的上传下载与重命名,删除等功能。

3.1.2 功能需求

该系统主要包括以下几个方面:

1.可视化的交互界面模块;2.登录服务器模块;3.浏览服务器/本地目录和文件模块;4.上传/下载文件模块。由这四个模块构成该系统。

3.1.3 性能需求

整个系统操作应当简便,界面友好,运行稳定,执行速度快。系统本身运行对计算机硬件平台和操作系统平台要求适中。

3.2客户端设计

3.2.1 客户端整体模块

这个部分是本文设计的中心部分,是对客户端进行主要的功能设计和界面设计。

FTP 客户端作为用户连接FTP 服务器的工具,需要具备一些基本功能模块,如连接、上传、 下载等,其中最主要的三大功能模块如下:

1、下载功能模块:连接用户指定的FTP 服务器,获取服务器目录下的文件列表,当用户选择项目为文件时,点击下载可以下载用户所需要的文件。选定文件后提示用户将文件存储在何处,用户选择存储区后开始下载任务。

依靠FTP 协议的支持,用户下载的文件没有类型和大小限制,即用户可已选择任何自己想要下载的文件,通过FTP 客户端进行下载。 2、上传功能模块:用户可以自行选择本机上存储的文件,上传至FTP 服务器。 在用户选择存储在服务器的位置后,点击上传,选择所需要上传的文件,即可将文件上传至服务器。

3、 连接功能模块:将用户本机与指定的IP 地址连接,验证用户命和密码,在FTP 服务器上进行注册。

有了这三个基本的功能模块,客户端的基本应用功能即可实现。

如图3.1所示:

系统主模块 登录模块 服务器目录浏览 目录文件/文件夹操作模块 服务器目录更新模块 上传下载文件模块 合法帐户 匿名帐户 新建文件夹 删除文件 文件重命名 上传文件 下载文件 图3 FTP客户端整体结构模块图

客户在启动客户端程序后输入相应的登陆信息就能连接到服务器上,对服务器上的文件进行浏览、新建、删除、重命名、上传、下载文件等操作,通过断开结束与服务器的连接。

3.2.2 客户端流程划分

客户端整体流程如图4所示:


FTP客户端软件的设计与实现(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:高考数学艺体生百日突围专题(11)立体几何(基础篇,含答案)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: