linux程序设计思路大作业解题思路.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Linux程序设计实验 大作业解题思路 实现一个FTP服务系统 具体:基于客户/服务器交互模式,采用TCP/IP通信协议,实现以支持远程文件传输的客户/服务器软件,支持文件的上传和下载。其中客户端软件命名为myftp,服务器软件命名为ftpserver 实验题目 * 服务器 启动方式:执行 ftpserver [IP地址] port 启动FTP服务 其中IP地址为可选项,如不提供服务器IP地址,FTP服务将自动绑定到本地网络的IP。 用户认证与权限管理:为FTP客户提供基于用户名/密码认证的服务模式,只有授权用户才可以对指定文件进行读写操作。用户只有在具备写权限操作的目录上才能上传文件。(可直接集成linux服务器系统的用户管理) 并行执行功能:要求服务器采用多进程/线程技术响应客户请求。当客户通过身份验证后,服务器将创建一个新的进程/线程来响应用户请求,提供服务。 服务传输模式:支持二进制(默认)和ASCII传输模式。用户可通过执行binary/ascii命令切换传输模式。 实验要求 * 服务器 服务器支持的客户文件操作:登录成功后,客户可在服务器执行以下操作:创建/删除目录(mkdir/rmdir)、显示当前路径(pwd)、切换目录(cd)、查看目录下的所有文件(ls)、上传单个/多个文件(put/mput)、下载单个/多个文件(get/mget)。 站点计数与用户管理功能:统计服务器站点的当前活动用户数及自运行以来的访客总数。系统管理员可在服务器软件终端端窗口执行以下命令: count current:当前活动用户数 count all:显示系统访客总数 list:显示当前在线的所有用户的用户名 kill username:强制删除某个用户。 quit:关闭ftp服务器软件。 实验要求(续) * 服务器 其他功能:对用户错误输入提供容错保护,即当用户输入错误命令时,需向客户端返回出错提示信息。 可选功能(加分): 在服务器端为访问频率最高的文件建立缓冲区(可采用共享内存技术),以便提高服务端的性能。 实现断点续传功能。 实验要求(续) * 客户端 登录管理:客户端在shell中输入:myftp username:passwd@ftp-server-ip:ftp-server-port登录ftpserver。若通过身份验证,服务器将向客户回显you are client #.(#为第几位用户)并显示ftp命令输入提示符myftp;否则显示username doesnt exist or password is error!。 文件操作命令。在客户端执行基本文件操作:创建/删除目录(lmkdir/lrmdir)、显示当前路径(lpwd)、切换目录(lcd)、查看当前目录下的所有文件(dir)、上传单个/多个文件(put/mput)、下载单个/多个文件(get/mget)。 退出系统。用户执行“quit”断开连接,结束当前会话 实验要求(续) * 文件传输 TCP/IP协议进行数据传输,使用Socket套接字对TCP/IP进行了封装,可以使用特定的参数调用socket。 客户端与服务器端的通信问题包括两个方面:文件的传输和命令的传输,这两种传输可以通过一个tcp连接进行,这样在传输文件时,用户不能向服务器发送命令,同时需要在命令流中识别文件传输的开始与结束的位置;也可以用两个tcp连接,一个用于命令传输,一个用于文件传输。 解题思路 * 文件的格式问题 ftp传输的磁盘文件一般存在两种模式:二进制和ASCII 二进制文件:如可执行程序,位图文件,该类型文件按原始内容传输即可。 ASCII文件:操作系统读取时每次都是读取一行,Windows中为’\r\n’,在linux中为’\n’,所以对ascii格式的文件传输需要考虑换行符的转换问题,因为客户端的操作系统和服务器的操作系统可能不同,在ftp中使用ascii传输模式传输ascii文件。 解题思路(续) * 断点续传问题 下载文件时,客户端可以告诉服务器要下载的文件名及相应的文件偏移量(初始为0) 这样服务器可以从文件偏移量处开始传输文件,在上传文件的相应文件偏移量由服务器提供给客户端 下载文件的断点信息在客户端保存,上传文件的断点信息在服务器端保存。 解题思路(续) * 用户管理问题 用户在登陆ftp时需要提供用户名和密码,当然ftp服务器也可以允许匿名用户的登陆。 对于不同的目录,不同的用户id应该具有不同的权限,这些权限的设定可以参考linux内核对文件系统的访问控制。 思路a)在服务器端维护一个用户与目录的关联矩阵,x/y坐标轴分别由用户id和目录或文件标定,(x,y)项中存储访问权限(r/w),当某个用户要对某个目录或文件进行操作时,服务进程首先要查

您可能关注的文档

文档评论(0)

ipad0c + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档