知识库

类FTP服务器设计

网站:知识库   来源:网络收集

目 录 摘要 ................................................................... 1 Abstract ............................................................... 2 绪 论 .................................................................. 3 一、设计要求 ........................................................... 3 二、方案设计与选取 ..................................................... 3 三、FTP 协议与工作原理 .................................................. 4 (一)FTP 协议 ........................................................ 4 (二)工作原理 ....................................................... 5 (三)FTP 传输两种方式 ................................................ 5 (四)FTP 工作方式 .................................................... 6 四、开发环境与开发工具 ................................................. 6 (一)Linux 系统和 GCC 编译工具 ........................................ 6 (二)服务器执行流程 ................................................. 7 (三)Server-Client 模型 .............................................. 8 (四)Socket 机制 ..................................................... 8 (五)Socket 类型 ..................................................... 9 五、服务端与客户端实现 ................................................ 10 (一)服务端(Server) .............................................. 10 (二)客户端(Client) .............................................. 11 (三)程序主要函数说明与解析 ........................................ 12 1.服务端(Server) ................................................ 12 2.客户端(Client) ................................................ 14 3.线程运行函数 .................................................... 16 六、系统测试 .......................................................... 17 (一)系统可能出现的问题与不足 ...................................... 17 (二)采用的测试类型 ................................................ 17 1. 黑盒测试 ........................................................ 17 2. 白盒测试 ........................................................ 17 (三)测试的过程与结果分析 .......................................... 18 七、结论 .............................................................. 18 参考文献 .............................................................. 19 附录 A ................................................................. 19 附录 B ................................................................. 20 附录 C ................................................................. 25 致谢 .................................................................. 29

类 FTP 服务器设计 类 FTP 服务器设计 摘要: 在当今现代社会, 互联网已经成为实现信息共享必不可缺少的的介质, 而文件传输则是信息共享非常重要的一个内容之一。

互联网早期实现传输文件,并 非是一件易事。

众所周知,互联网是一个非常复杂的计算机环境,有 PC (personal computer),有工作站(一种高端的通用微型计算机),有 MAC(Macintosh ,苹果 电脑的统称),有大型机(大型主机),据统计连接在互联网上的计算机已有上千 万台,而这些计算机可能运行不同的操作系统,有运行 Unix(尤尼斯,一种操作系 统)的服务器,也有运行 Dos(磁盘操作系统)、Windows(Microsoft Windows , 微软公司研发的一套桌面操作系统)的 PC 机和运行 Mac OS(运行于苹果 Macintosh 系列电脑上的操作系统)的苹果机等等,而各种操作系统之间的文件交流问题,需 要建立一个统一的文件传输协议,这就是所谓的 FTP(File Transfer Protocol , 文件传输协议)。

基于不同的操作系统有不同的 FTP 应用程序,而所有这些应用程 序都遵守同一种协议,这样用户就可以把自己的文件传送给别人,或者从其它的用 户环境中获得文件。

与大多数互联网服务一样,FTP 也是一个客户机/服务器系统。

用户通过一个支持 FTP 协议的客户机程序, 连接到在远程主机上的 FTP 服务器程序。

用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令, 并将执行的结果返回到客户机。

比如说,用户发出一条命令,要求服务器向用户传 送某一个文件的一份拷贝, 服务器会响应这条命令, 将指定文件送至用户的机器上。

客户机程序代表用户接收到这个文件,将其存放在用户目录中。

关键词:互联网,操作系统,服务器,文件传输,指令 1

类 FTP 服务器设计 FTP Server Design Abstract: In today's modern society, the Internet has become indispensable to realize information sharing of the medium, and file transfer is one of the contents of the information sharing is very important. The early days of the Internet to realize the transmission of documents, is not easy. As everyone knows, the Internet is a very complex computer environment, PC (personal computer), a workstation (general microcomputer a high-end),MAC(Macintosh, Apple Computer collectively), a large computer (Mainframe), according to statistics of computers connected to the Internet have been a million, and the computer may run different operating system is running, Unix (Eunice, an operating system) server, there are also running Dos (disk operating system), Windows (Microsoft Windows, the Microsoft Corp developed a set of desktop operating system) PC machine and run Mac OS (operating system running on the apple Macintosh series computer the apple machine and so on), and between the various operating system file communication problems, the need to establish a unif file transfer protocol, which is called FTP (File Transfer Protocol, file transfer protocol). Based on different operating system and different FTP application, and all these applications comply with the same protocol, so users can send their documents to others, or receive files from other users in the environment. With the majority of Internet service, FTP is a client / server system. The client program the user through a support FTP protocol, connected to the remote host FTP server program. A user issues a command to the server program by the client program, server program execution issued by a user's command, and the implementation of the results back to the client. For example, the user issues a command, request the server to the users to send a file as a copy, the server will respond to the command, will specify the file is sent to the user's machine. The client program on behalf of the user receives the file, which is stored in user directory. Key words:internet; operating system; server; file transfer; command 2

类 FTP 服务器设计 绪 论 进入信息时代,伴随着互联网普及化、大众化,只要能够连接上网络,就可以 从网上寻找到庞大的数据资源,其内容包罗万象,可以说几乎任何人都可以在互联 网资源中找到自己所需要的信息资源。

有了网络,使用者不但可以浏览各种各样的 信息资源,还能够将自己感兴趣的资源下载到本机。

由于网络的带宽及各种服务的 限制,单纯从页面上下载显得又慢又不可靠,所以出现了许多 FTP 工具。

从本质上 说,FTP 就是在网络中各种不同的计算机之间按照 TCP/IP 协议来传输文件。

FTP 采 用的是现在流行的 Client/Server 模式,由 FTP 客户端和 FTP 服务器端程序组成。

通常服务器端是远程端点,用户可以通过 Internet 网络连接到远程的 FTP 服务器 站点。

服务器的功能是主要的, 确切的说只有当 FTP 服务器支持各种协议和指令时, 才能够开发相应的客户端程序。

本设计就是一个基于 Linux 系统的类 FTP 服务器实现。

虽然这仅仅是一个小型 化的 FTP 程序, 但它基本上实现了 FTP 所具有的基本功能。

而且它可以在任何 linux 系列的系统上运行,使用 linux gcc 编译工具。

一、设计要求 本设计准备实现的功能: 1).服务器可以实现多用户同时登陆,同时在线操作 2).服务器可以实现任何的 linux 指令,并且在客户端显示 3).客户端可以进行文件的上传和下载(包括文本文件和图片文件) 二、方案设计与选取 若要实现多用户同时在线登陆并进行操作,则服务器端需要使用多①线程控制。

所以,根据问题设计出两种方案: 1).及时开辟,及时回收。

即当有用户登陆时,就开辟出一个线程用户操 作,而当用户退出后及时回收线程。

虽然,这样的设计符合要求,但是由于开辟线 ① 称为轻量级进程(Lightweight Process,LWP) ,是程序执行流的最小单元 3

类 FTP 服务器设计 程与回收线程都需要消耗时间与系统资源。

即使这些操作仅仅都是电脑来完成,不 需要人工操作。

但是如果是面对实际问题,节省系统的自身资源与时间效率是必然 的。

才有助于系统的自身利用效率实现最大化。

2).最先开辟,然后等待。

即首先开辟一个②线程池,线程池中包含了已经开辟 好的多个线程(线程的开辟上限依据系统内存大小而定) ,然后让这些线程进行等 待。

当有用户登录时就一个线程为其“服务” ,以此类推。

而当有用户退出时 不回收线程,而是让该线程进入等待状态,等待下一个用户登陆。

如果用户登陆数 目远远大于已开辟好的线程数目,则通知其他用户进行等待,当有用户退出后则为 其已退出用户的线程。

该方案符合实际需求,而且会充分利用系统资源,节省 系统时间。

所以,选择该方案进行本次设计。

三、FTP 协议与工作原理 (一)FTP 协议 FTP(File Transfer Protocol) ,是文件传输协议的简称。

用于 Internet 上 的控制文件的双向传输。

与此同时,其也是一个应用程序(Application) 。

用户可 以通过它把自己的 PC 机与世界各地所有运行 FTP 协议的服务器相连接,访问服务 器上的存储的大量程序和信息。

正如其名所示:FTP 的主要作用,就是让用户连接 上一个远程计算机(这些计算机上运行着 FTP 服务器程序)查看远程计算机有哪些 文件,文件是否为自己需要。

然后把文件从远程计算机上拷到属于自己的本地计算 机,或把本地计算机的文件传输到到远程计算机去。

FTP 是属于 TCP/IP 协议组中的 协议之一,是英文 File Transfer Protocol 的缩写。

该协议是 Internet 文件传送 的基础,它由一系列规格说明文档组成,FTP 的目标是提高文件的共享性,非 直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。

② 一种多线程处理形式,处理过程任务添加到队列,然后在创建线程后自动启动这些任务 4

类 FTP 服务器设计 (二) 工作原理 以下载文件为例,当启动 FTP 从远程计算机拷贝文件时,实际上是启动了两个 程序: 一个本地计算机机上的 FTP 客户程序, 它向 FTP 服务器提出拷贝文件的请求。

而另一个是启动在远程计算机的上的 FTP 服务器程序,它响应请求并且把指定的文 件传送到本地计算机上。

FTP 采用“客户机/服务器”方式,用户端要在本地计算机 上安装 FTP 客户程序。

与大多数 Internet 服务一样,FTP 也是一个客户机/服务器 系统。

用户需要通过一个支持 FTP 协议的客户机程序,连接到在远程主机上的 FTP 服务器程序。

用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所 发出的命令,经过确定后并将执行的结果返回到客户机。

而本次设计没有针对权限的操作,也就表示这个 FTP 服务器是一个开放式的, 由一台 PC 作为服务器,而其它的 PC 机则作为客户机(当然 PC 机上要有客户端程 序) 。

并且对于端口号的要求,只要能够连接到服务器并能够下载和上传文件即算 成功,端口号为预先设置。

(三)FTP 传输两种方式 ③ ASCII 传输模式和二进制数据传输模式。

1) .ASCII 传输方式:假定用户正在拷贝的文件包含的是简单 ASCII 码文本, 而在远程机器上运行的不是 UNIX, 当文件传输时 ftp 通常会自动地调整文件的内容 以便于把文件解释成另外那台计算机存储文本文件的格式。

2) .二进制传输模式:在二进制传输中,保存文件的位序,以便原始和拷贝的 是逐位一一对应的。

即使目的地机器上包含位序列的文件是没意义的。

如果是在 ASCII 方式下传输二进制文件,即使不需要也仍会转译。

但是这会使 传输稍微变慢,也就会出现损坏数据,使文件变得不能够使用。

(在大多数计算机 上,ASCII 方式一般假设每一字符的第一有效位无意义,因为 ASCII 字符组合不能 够使用它。

但是如果是在传输二进制文件,所有的位都是重要的)如果前提知道这 ③ 基于拉丁字母的一套电脑编码系统 5

相关内容
  • 实验6 WWW服务器和FTP服务器的设计

    实验6 WWW服务器和FTP服务器的设计

    实验6 WWW服务器和FTP服务器的设计...

  • FTP服务器的构建与维护课程设计

    FTP服务器的构建与维护课程设计

    FTP服务器的构建与维护课程设计...

  • FTP服务器的设计与实现

    FTP服务器的设计与实现

    FTP服务器的设计与实现...

  • FTP服务器的构建与维护设计

    FTP服务器的构建与维护设计

    FTP服务器的构建与维护设计...

  • FTP服务器的设计与实现开题报告

    FTP服务器的设计与实现开题报告

    FTP服务器的设计与实现开题报告...

  • 嵌入式FTP服务器的设计与实现

    嵌入式FTP服务器的设计与实现

    嵌入式FTP服务器的设计与实现...

  • 安全FTP服务器的设计与实现

    安全FTP服务器的设计与实现

    安全FTP服务器的设计与实现...

  • FTP服务器与客户端设计与开发

    FTP服务器与客户端设计与开发

    FTP服务器与客户端设计与开发...

  • FTP服务器毕业设计完整版简

    FTP服务器毕业设计完整版简

    FTP服务器毕业设计完整版简...

  • Win2003下各种类型ftp服务器

    Win2003下各种类型ftp服务器

    Win2003下各种类型ftp服务器...

  • 网友在搜
  • ftp服务器搭建
  • ftp命令的使用方法
  • ftp用户权限设置
  • ftp站点地址
  • ftp共享文件怎么设置
  • c#中ftp类的用法
  • ftp是什么意思
  • ftp如何上传文件
  • ftp如何反向代理
  • ftp连接失败
  • ftp文件夹错误
  • ftp登录不了
  • 天使之争 华晨中华 擒拿术 锻冶屋英雄谭 宇宙快递电影 张掖天气预报 化痰的食物 宽带缴费 1100lu.us 我们都爱笑综艺 阳光车险 公主的男人 黑莓q10 2222abc.com 兰州拉面 漫画头像 炮灰 安徽快3 国破山河在 肚脐眼里的泥能抠吗 畸胎瘤 晋江文学网 我是赵传奇电视剧 雪狼谷电视剧全集 万界至尊 大丽花 江苏联通网上营业厅 高干小说 3d专家预测 黄芪红枣茶 非常静距离胡歌 小型投资项目 梧桐树 潜伏电视剧 95515 搜狗网址导航 东京天气预报 blessing 九龙图库 stp 一个太监闯内宫 巨星之名器炉鼎 寒食节 折耳根

    All Right Reserved 知识库

    声明:本站内容源于网络,出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。文章内容仅供参考,请咨询相关专业人士。

    如果无意之中侵犯了您的版权,或有意见、反馈或投诉等情况 网站地图 网站栏目