




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、大作业解题思路实现一个FTP服务系统具体:基于客户/服务器交互模式,采用TCP/IP通信协议,实现以支持远程文件传输的客户/服务器软件,支持文件的上传和下载。其中客户端软件命名为myftp,服务器软件命名为实验题目2服务器启动方式:执行 IP地址 port 启动FTP服务其中IP地址为可选项,如不提供服务器IP地址,FTP服务将自动绑定到本地网络的IP。用户认证与权限管理:为FTP客户提供基于用户名/密码认证的服务模式,只有授权用户才可以对指定文件进行读写操作。用户只有在具备写权限操作的目录上才能上传文件。(可直接集成linux服务器系统的用户管理)并行执行功能:要求服务器采用多进程/线程技术
2、响应客户请求。当客户通过身份验证后,服务器将创建一个新的进程/线程来响应用户请求,提供服务。服务传输模式:支持二进制(默认)和ASCII传输模式。用户可通过执行binary/ascii命令切换传输模式。实验要求3服务器服务器支持的客户文件操作:登录成功后,客户可在服务器执行以下操作:创建/删除目录(mkdir/rmdir)、显示当前路径(pwd)、切换目录(cd)、查看目录下的所有文件(ls)、上传单个/多个文件(put/mput)、下载单个/多个文件(get/mget)。站点计数与用户管理功能:统计服务器站点的当前活动用户数及自运行以来的访客总数。系统管理员可在服务器软件终端端窗口执行以下命
3、令:count current:当前活动用户数count all:显示系统访客总数list:显示当前在线的所有用户的用户名kill username:强制删除某个用户。quit:关闭ftp服务器软件。实验要求(续)4服务器其他功能:对用户错误输入提供容错保护,即当用户输入错误命令时,需向客户端返回出错提示信息。可选功能(加分):在服务器端为访问频率最高的文件建立缓冲区(可采用共享内存技术),以便提高服务端的性能。实现断点续传功能。实验要求(续)5客户端登录管理:客户端在shell中输入:my登录。若通过身份验证,服务器将向客户回显you are client #.(#为第几位用户)并显示ftp
4、命令输入提示符myftp;否则显示username doesnt exist or password is error!。文件操作命令。在客户端执行基本文件操作:创建/删除目录(lmkdir/lrmdir)、显示当前路径(lpwd)、切换目录(lcd)、查看当前目录下的所有文件(dir)、上传单个/多个文件(put/mput)、下载单个/多个文件(get/mget)。退出系统。用户执行“quit”断开连接,结束当前会话实验要求(续)6文件传输TCP/IP协议进行数据传输,使用Socket套接字对TCP/IP进行了封装,可以使用特定的参数调用socket。客户端与服务器端的通信问题包括两个方面:
5、文件的传输和命令的传输,这两种传输可以通过一个tcp连接进行,这样在传输文件时,用户不能向服务器发送命令,同时需要在命令流中识别文件传输的开始与结束的位置;也可以用两个tcp连接,一个用于命令传输,一个用于文件传输。解题思路7文件的格式问题ftp传输的磁盘文件一般存在两种模式:二进制和ASCII二进制文件:如可执行程序,位图文件,该类型文件按原始内容传输即可。ASCII文件:操作系统读取时每次都是读取一行,Windows中为rn,在linux中为n,所以对ascii格式的文件传输需要考虑换行符的转换问题,因为客户端的操作系统和服务器的操作系统可能不同,在ftp中使用ascii传输模式传输asc
6、ii文件。解题思路(续)8断点续传问题下载文件时,客户端可以告诉服务器要下载的文件名及相应的文件偏移量(初始为0)这样服务器可以从文件偏移量处开始传输文件,在上传文件的相应文件偏移量由服务器提供给客户端下载文件的断点信息在客户端保存,上传文件的断点信息在服务器端保存。解题思路(续)9用户管理问题用户在登陆ftp时需要提供用户名和密码,当然ftp服务器也可以允许匿名用户的登陆。对于不同的目录,不同的用户id应该具有不同的权限,这些权限的设定可以参考linux内核对文件系统的访问控制。思路a)在服务器端维护一个用户与目录的关联矩阵,x/y坐标轴分别由用户id和目录或文件标定,(x,y)项中存储访问
7、权限(r/w),当某个用户要对某个目录或文件进行操作时,服务进程首先要查找关联矩阵以确认该用户是否具有相应权限;解题思路(续)10 思路b)由于在linux内核中实现了用户对文件系统的访问控制(基于用户id和用户组id),因此可以考虑把ftp用户id的概念等同于linux系统的用户id的概念,把为某个ftp用户服务的进程的所属用户id和所属组id设定为该用户的用户id和组id,这样在当该进程要执行任何访问文件系统的操作时,linux内核会检测权限问题。解题思路(续)11多进程和多线程问题多线程可以共享同一个用户空间,这样可以创建一个全局的文件缓冲区,在这个文件缓冲区中存放有经常被访问的文件信息,这样可以提高服务器端的性能,但是在使用多线程编程时需要程序员自己控制对共享资源的并发控制。在多进程编程中,进程间可以通过传统的IPC(管道,共享内存等)机制进行通信,这样也可以维护一个全局的文件缓冲区,同时使用多进程编程可以方便的使用linux内核机制来解决用户管理问题具体采用哪种方式同学们可以多加权衡,多加思考解题思路(续)12作业提交要求将客户端源码和服
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025【设备安装合同】设备安装合同标准版本
- 2025成都国有建设用地使用权出让合同
- 2025集体土地使用权房屋转让合同
- 2025家电维修合同范文
- 2025技术研发服务合同范本
- 2025建筑工程木材供应合同
- 2025购房合同范本:房产买卖协议书
- 2025劳动合同风险管理
- 《青少年文学探索》课件
- 《无创心电技术在预测房颤复发中的价值教学课件》
- (二模)2025年深圳市高三年级第二次调研考试历史试卷(含标准答案)
- 一年级信息技术下册 在网上交流信息教学设计 清华版
- 广西《疼痛综合评估规范》(材料)
- 广东省2024-2025学年佛山市普通高中教学质量检测政治试卷及答案(二)高三试卷(佛山二模)
- 11.1 杠杆 课件 2024-2025学年教科版物理八年级下学期
- 妇产科课件-早产临床防治指南(2024)解读
- 2024年湖北省中考地理生物试卷(含答案)
- 2024年无锡市锡山环保能源集团招聘笔试参考题库附带答案详解
- 输液泵/微量注射泵使用技术操作考核评分标准
- 贵州省各县风向玫瑰图
- 足浴店员工劳动合同
评论
0/150
提交评论