欢迎来到天天文库
浏览记录
ID:9882491
大小:267.02 KB
页数:13页
时间:2018-05-11
《linux程序设计大作业解题思路》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、大作业解题思路实现一个FTP服务系统具体:基于客户/服务器交互模式,采用TCP/IP通信协议,实现以支持远程文件传输的客户/服务器软件,支持文件的上传和下载。其中客户端软件命名为myftp,服务器软件命名为ftpserver实验题目2服务器启动方式:执行>ftpserver[IP地址]port启动FTP服务其中IP地址为可选项,如不提供服务器IP地址,FTP服务将自动绑定到本地网络的IP。用户认证与权限管理:为FTP客户提供基于用户名/密码认证的服务模式,只有授权用户才可以对指定文件进行读写操作。用户只有在具备写权限操作的目录上才能上传文件。(可
2、直接集成linux服务器系统的用户管理)并行执行功能:要求服务器采用多进程/线程技术响应客户请求。当客户通过身份验证后,服务器将创建一个新的进程/线程来响应用户请求,提供服务。服务传输模式:支持二进制(默认)和ASCII传输模式。用户可通过执行binary/ascii命令切换传输模式。实验要求3服务器服务器支持的客户文件操作:登录成功后,客户可在服务器执行以下操作:创建/删除目录(mkdir/rmdir)、显示当前路径(pwd)、切换目录(cd)、查看目录下的所有文件(ls)、上传单个/多个文件(put/mput)、下载单个/多个文件(get/m
3、get)。站点计数与用户管理功能:统计服务器站点的当前活动用户数及自运行以来的访客总数。系统管理员可在服务器软件终端端窗口执行以下命令:countcurrent:当前活动用户数countall:显示系统访客总数list:显示当前在线的所有用户的用户名killusername:强制删除某个用户。quit:关闭ftp服务器软件。实验要求(续)4服务器其他功能:对用户错误输入提供容错保护,即当用户输入错误命令时,需向客户端返回出错提示信息。可选功能(加分):在服务器端为访问频率最高的文件建立缓冲区(可采用共享内存技术),以便提高服务端的性能。实现断点续
4、传功能。实验要求(续)5客户端登录管理:客户端在shell中输入:myftpusername:passwd@ftp-server-ip:ftp-server-port登录ftpserver。若通过身份验证,服务器将向客户回显"youareclient#."(#为第几位用户)并显示ftp命令输入提示符myftp>;否则显示"usernamedoesn'texistorpasswordiserror!"。文件操作命令。在客户端执行基本文件操作:创建/删除目录(lmkdir/lrmdir)、显示当前路径(lpwd)、切换目录(lcd)、查看当前目录下的
5、所有文件(dir)、上传单个/多个文件(put/mput)、下载单个/多个文件(get/mget)。退出系统。用户执行“quit”断开连接,结束当前会话实验要求(续)6文件传输TCP/IP协议进行数据传输,使用Socket套接字对TCP/IP进行了封装,可以使用特定的参数调用socket。客户端与服务器端的通信问题包括两个方面:文件的传输和命令的传输,这两种传输可以通过一个tcp连接进行,这样在传输文件时,用户不能向服务器发送命令,同时需要在命令流中识别文件传输的开始与结束的位置;也可以用两个tcp连接,一个用于命令传输,一个用于文件传输。解题思
6、路7文件的格式问题ftp传输的磁盘文件一般存在两种模式:二进制和ASCII二进制文件:如可执行程序,位图文件,该类型文件按原始内容传输即可。ASCII文件:操作系统读取时每次都是读取一行,Windows中为’r’,在linux中为’’,所以对ascii格式的文件传输需要考虑换行符的转换问题,因为客户端的操作系统和服务器的操作系统可能不同,在ftp中使用ascii传输模式传输ascii文件。解题思路(续)8断点续传问题下载文件时,客户端可以告诉服务器要下载的文件名及相应的文件偏移量(初始为0)这样服务器可以从文件偏移量处开始传输文件,在上
7、传文件的相应文件偏移量由服务器提供给客户端下载文件的断点信息在客户端保存,上传文件的断点信息在服务器端保存。解题思路(续)9用户管理问题用户在登陆ftp时需要提供用户名和密码,当然ftp服务器也可以允许匿名用户的登陆。对于不同的目录,不同的用户id应该具有不同的权限,这些权限的设定可以参考linux内核对文件系统的访问控制。思路a)在服务器端维护一个用户与目录的关联矩阵,x/y坐标轴分别由用户id和目录或文件标定,(x,y)项中存储访问权限(r/w),当某个用户要对某个目录或文件进行操作时,服务进程首先要查找关联矩阵以确认该用户是否具有相应权限;
8、解题思路(续)10思路b)由于在linux内核中实现了用户对文件系统的访问控制(基于用户id和用户组id),因此可以考虑把ftp用户id
此文档下载收益归作者所有