linux小型远程FTP服务系统.doc

  1. 1、本文档共73页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
linux小型远程FTP服务系统.doc

中北大学 操作系统课程设计 说 明 书 ? 学 院、系: 软件学院 专 业: 软件工程 学 生 姓 名: 学 号: 设 计 题 目: 基于linux的小型远程FTP服务系统的设计 起 迄 日 期: 2011年12月22日- 2012年1月7日 指 导 教 师: 薛海丽 ? ? ?2012 年 1月 7 日 需求分析 1.1 设计目的: 用高级语言编写和调试一个简单的FTP服务系统,掌握对进程、线程、进程互斥、同步、通信、文件系统及网络编程的方法。从而加深学生对远程服务机制的理解和认识。 设计要求: ①该系统要求有服务器端软件和客户端软件两部分组成,服务器端在指定端口接受客户连接请求,根据客户要求执行相应处理,客户端提供系统的交互界面 ②基于套接字得客户/服务器通信模式 ③远程登录功能 要求集成linux系统的客户管理功能,对客户信息予以验证,客户发送连接请求时,提供FTP服务器软件在linux主机上的客户名及密码,请求命令格式如下: Ftps://客户名:密码@FTP服务器IP:port ④并发执行及管理功能 采用多线程,客户通过身份请求后创建一个新线程来响应客户请求。 ⑤活动客户计数功能 统计当前的活动客户数,通过身份验证+1,断开连接-1 ⑥文件管理功能 服务器端的文件基本操作包括:mkdir、rmdir、cd、ls 客户端执行的基本操作包括:创建及删除目录、切换目录、查看当前目录下的所有文件 设定文件传输模式:文本模式和二进制 文件传输:upload/download到指定目录。 开发环境: 本程序分为服务器端和客户端两部分,全部在Red Hat Enterprise Linux 5系统中使用GCC编译执行,要求系统具有vsftpd组件。 程序特点: 本程序主要使用套接口函数实现服务器端/客户端通信,具有较强的安全性设计和错误提示功能;采用多线程设计,可以保证多个客户端登陆同一服务器端而不冲突。 程序使用命令提示符界面,在指定账户登录可实现全部功能,而在匿名账户下可实现部分功能。 2. 总体设计: 2.1功能模块: 本程序分为套接口通信模块、登录模块、命令解析模块、文件操作模块、文件传输模块共5个模块,具体如下: A.套接口通信模块: 表2-1 套接口函数列表 函数名 类型 功能 *Handle_Client_Request() void 响应客户端请求 do_client_work() void 处理客户端动作 sockaddr_in create_date_sock() struct 创建数据管道 send_client_info() void 发送客户端信息 recv_client_info int 接受客户端信息 fill_host_addr() int 写入服务器地址 xconnect() int 连接服务器与客户端 ftp_send_cmd() int 发送FTP指令 ftp_get_reply() int 接受服务器回应 xconnect_ftpdata() int 传输数据 handle_pasv() void 设定FTP工作模式 B.登录模块: 表2-2 登录模块函数列表 函数名 类型 功能 login() int 客户端登录 close_cli() void 关闭客户端连接 get_user() void 获取账户名 get_pass() void 获取密码 ftp_login() int 登录到FTP服务器 show_help() void 显示帮助信息 ftp_quit() void 退出客户端 C.命令解析模块: 表2-3 命令解析模块函数列表 函数名 类型 功能 cmd_err_exit() void 处理错误的命令 ftp_usr_cmd() int 解析用户输入的命令 start_ftp_cmd() int 连接到服务器的命令 ftp_cmd_filename() void 处理文件名的命令 D.文件操作模块: 表 2-4 文件操作模块函数列表 函数名 类型 功能 ftp_list() void 列出服务器文件列表 ftp_pwd() void 显示服务器当前所在目录 ftp_cd() void 转到服务器指定目录 del() void 删除文件 mkdir_srv() void 新建文件夹 rmdir_srv() void 删除文件夹 local_list() void 列出客户端文件列表 local_pwd() void 显示客户端当前所在目录 local_cd() void 转到客户端指定目录 handle_cwd() void 处理转

文档评论(0)

lingyun51 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档