教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 求职职场 >

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

来源:网络收集 时间:2026-09-05
导读: Linux程序设计实验大作业解题思路 实验题目 实现一个FTP服务系统 具体:基于客户/服务器交互模式,采用TCP/IP通 信协议,实现以支持远程文件传输的客户/服务器软 件,支持文件的上传和下载。其中客户端软件命名 为myftp,服务器软件命名为ftpserver 实验要求

Linux程序设计实验大作业解题思路

实验题目 实现一个FTP服务系统 具体:基于客户/服务器交互模式,采用TCP/IP通 信协议,实现以支持远程文件传输的客户/服务器软 件,支持文件的上传和下载。其中客户端软件命名 为myftp,服务器软件命名为ftpserver

实验要求 服务器启动方式:执行 >ftpserver [IP地址] port 启动FTP服务 其中IP地址为可选项,如不提供服务器IP地址,FTP服务 将自动绑定到本地网络的IP。 用户认证与权限管理:为FTP客户提供基于用户名/密码 认证的服务模式,只有授权用户才可以对指定文件进行 读写操作。用户只有在具备写权限操作的目录上才能上 传文件。(可直接集成linux服务器系统的用户管理) 并行执行功能:要求服务器采用多进程/线程技术响应客 户请求。当客户通过身份验证后,服务器将创建一个新 的进程/线程来响应用户请求,提供服务。 服务传输模式:支持二进制(默认)和ASCII传输模式。 用户可通过执行binary/ascii命令切换传输模式。 3

实验要求(续) 服务器

4

服务器支持的客户文件操作:登录成功后,客户可在服 务器执行以下操作:创建/删除目录(mkdir/rmdir)、显 示当前路径(pwd)、切换目录(cd)、查看目录下的所 有文件(ls)、上传单个/多个文件(put/mput)、下载 单个/多个文件(get/mget)。 站点计数与用户管理功能:统计服务器站点的当前活动 用户数及自运行以来的访客总数。系统管理员可在服务 器软件终端端窗口执行以下命令: count current:当前活动用户数 count all:显示系统访客总数 list:显示当前在线的所有用户的用户名 kill username:强制删除某个用户。 quit:关闭ftp服务器软件。

实验要求(续) 服务器

其他功能:对用户错误输入提供容错保护,即当用户输 入错误命令时,需向客户端返回出错提示信息。 可选功能(加分): 在服务器端为访问频率最高的文件建立缓冲区(可采 用共享内存技术),以便提高服务端的性能。 实现断点续传功能。

实验要求(续) 客户端

6

登录管理:客户端在shell中输入:myftp username:passwd@ftp-server-ip:ftp-server-port登录 ftpserver。若通过身份验证,服务器将向客户回显"you are client #."(#为第几位用户)并显示ftp命令输入提示符 myftp>;否则显示"username doesn't exist or password is error!"。 文件操作命令。在客户端执行基本文件操作:创建/删除 目录(lmkdir/lrmdir)、显示当前路径(lpwd)、切换 目录(lcd)、查看当前目录下的所有文件(dir)、上传 单个/多个文件(put/mput)、下载单个/多个文件( get/

mget)。 退出系统。用户执行“quit”断开连接,结束当前会话

实验要求(续) 作业提交要求

将客户端源码和服务器源码分别放入命名为ftpclient和 ftpserver文件夹中,连同试验报告打包,命名格式为: 学号1#学号2...。 要求使用automake工具为工程自动生成Makefile。 作业提交截止时间为本学期放假前。作业提交前将组织 答辩。

解题思路 文件传输

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),当某个用户要对某个目录或文件进行操作时 ,服务进程首先要查找关联矩阵以确认该用户是否具有 相应权限;

解题思路(续) 思路b)由于在linux内核中实现了用户对文件系统的访问控 制(基于用户id和用户组id),因此可以考虑把ftp用户id的概念 等同于linux系统的用户id的概念,把为某个ftp用户服务的 进程的所属用户id和所属组id设定为该用户的用户id和组id, 这样在当该进程要执行任何访问文件系统的操作时,linux 内

核会检测权限问题。

解题思路(续) 多进程和多线程问题

多线程可以共享同一个用户空间,这样可以创建一个全 局的文件缓冲区,在这个文件缓冲区中存放有经常被访 问的文件信息,这样可以提高服务器端的性能,但是在 使用多线程编程时需要程序员自己控制对共享资源的并 发控制。 在多进程编程中,进程间可以通过传统的IPC(管道,共 享内存等)机制进行通信,这样也可以维护一个全局的 文件缓冲区,同时使用多进程编程可以方便的使用linux 内核机制来解决用户管理问题 具体采用哪种方式同学们可以多加权衡,多加思考

作业要求 使用automake工具为项目自动生成Makefile 2人组成小组,自由组合。 将客户端源码和服务器源码分别放入命名为 ftpclient和ftpserver文件夹中,连同试验报告打包, 命名格式为:学号1#学号2。

…… 此处隐藏:1195字,全部文档内容请下载后查看。喜欢就下载吧 ……
linux程序设计大作业解题思路.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/1701290.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)