LINUX大作业

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Linux系统编程大作业
一、实验题目
实现一个FTP服务系统
二、实验目的
通过该实验,掌握Linux环境下的多线程/进程编程技术、文件操作、用户权限管理、进程间通信技术
三、实验要求
基于客户/服务器交互模式,采用TCP/IP通信协议,实现一个支持远程文件传输的客户/服务器软件,支持文件的上传和下载。

其中客户端软件命名为myftp,服务器软件命名为ftpserver,具体功能需求如下:
(一)服务器
1)启动方式。

执行ftpserver [IP地址] port启动FTP服务。

其中IP地址为可选项。

若不提供服务器IP地址,FTP服务将自动绑定到本地网络的IP。

2)用户认证与权限管理。

为FTP客户提供基于用户名/密码认证的服务模式,只有授权用户才可以访问FTP服务。

与此同时,对文件/目录的访问,也实现基于授权的
访问机制,即只有授权用户才可以对指定文件进行读写操作。

用户只有在具备写权
限操作的目录上才能上传文件。

(可直接集成Linux服务器系统的用户管理)3)并行执行功能。

为提高系统性能,服务器将采用多进程/线程技术响应客户请求。

当客户通过身份验证后,服务器将创建一个新的进程/线程来响应用户请求,提供
服务。

4)服务器支持的客户文件操作。

登录成功后,客户可在服务器执行以下操作:创建/删除目录(mkdir/rmdir)、显示当前路径(pwd)、切换目录(cd)、查看当前目
录下的所有文件(ls)、上传单个/多个文件(put/mput)、下载单个/多个文件
(get/mget)。

5)服务传输模式。

支持二进制(默认)及ASCII传输模式。

用户可通过执行binary/ascii 命令切换传输模式。

6)站点计数与用户管理功能。

统计服务器站点的当前活动用户数及自运行以来的访客总数。

系统管理员可在服务器软件运行终端窗口执行以下命令:
A)count current:当前活动用户数
B)c ount all:显示系统访客总数
C)l ist:显示当前在线的所有用户的用户名
D)kill username:强制删除某个用户。

E)quit:关闭ftp服务器软件。

7)其他功能。

对用户错误输入提供容错保护,即当用户输入错误命令时,需向客户端返回出错提示信息。

8)可选功能(加分)。

A)在服务器端为访问频率最高的文件建立缓冲区(可采用共享内存技术),以便提高服务器端的性能。

B)实现断点续传功能。

(二)客户端
1、登录管理。

客户端在shell中输入myftp username:passwd@ftp-server-ip:ftp-server-port
登录ftpserver。

若通过身份验证,服务器将向客户回显"you are client #."(#为第几位
用户)并显示ftp命令输入提示符myftp>;否则显示"username doesn't exist or password is error!"。

2、文件操作命令。

在客户端执行基本文件操作:创建/删除目录(lmkdir/lrmdir)、显
示当前路径(lpwd)、切换目录(lcd)、查看当前目录下的所有文件(dir)、上
传单个/多个文件(put/mput)、下载单个/多个文件(get/mget)。

3、退出系统。

用户执行”quit”断开连接,结束当前FTP会话。

(三)作业提交要求
1、将客户端源码和服务器源码分别放入命名为ftpclient和ftpserver文件夹中,连同试
验报告打包,命名格式为:学号1#学号2...。

2、答辩的ppt,包括:设计思路和流程图(包括主要数据结构及其说明、测试数据的设
计及测试结果分析)
3、实验体会(包括实验中遇到的问题及解决过程、产生的错误及原因分析)。

相关文档
最新文档