首页 linux文件传输项目文档

linux文件传输项目文档

举报
开通vip

linux文件传输项目文档局域网文件传输系统项目说明 需求说明: 1,开发平台 1.1 linux x86 64 1.2 支持Debian Ubuntu 1.3 支持rhel,centos,Fedora 2,功能说明 1.1 文件上传与下载,讲指定文件上传到服务器,或从服务器下载文件到指定位置 1.2 文件浏览,浏览本地文件以及服务器端文件 1.3 概要 功能说明 1.3.1 客户端 主要任务: 1) 分析用户输入的命令 2) 根据命令向服务器端发出请求 3) 等待服务器返回的结果                             ...

linux文件传输项目文档
局域网文件传输系统项目 说明 关于失联党员情况说明岗位说明总经理岗位说明书会计岗位说明书行政主管岗位说明书 需求说明: 1,开发平台 1.1 linux x86 64 1.2 支持Debian Ubuntu 1.3 支持rhel,centos,Fedora 2,功能说明 1.1 文件上传与下载,讲指定文件上传到服务器,或从服务器下载文件到指定位置 1.2 文件浏览,浏览本地文件以及服务器端文件 1.3 概要 功能说明 1.3.1 客户端 主要任务: 1) 分析用户输入的命令 2) 根据命令向服务器端发出请求 3) 等待服务器返回的结果                                 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 1_1  命令含义与请求码 用户输入的命令 命令含义 对应的请求码 get 从服务器得到文件 GET put 向服务器传输文件 PUT cd 进入客户端的目录 不需要与服务端通信,因此无请求 !cd 进入服务器端目录 CD ls 列出客户端当前的内容 不需要与服务端通信因此无请求 !ls 列出服务器端当前的内容 LS connect 连接服务器 发出连接请求,不需要服务器额外处理 bye 退出程序 BYE                   表1_2 命令的格式 命令的名称 格式说明 get get  arg1  arg2。 arg1:源文件 arg2:本地路径。  arg1,arg2都是绝对路径 put put  arg1 arg1。arg1:本地文件 arg1:目标路径。 arg1 arg2都是绝对路径 !cd !cd  arg1。      arg1:指定的服务器目录。绝对路径 !ls !ls  arg1。      arg1:指定的目录。绝对路径 connect connect  arg1。  arg1:点分十进制IP地址 cd cd  arg1。      arg1:客户端的指定目录,绝对路径 ls ls  arg1。      arg1:客户端指定目录,绝对路径 bye bye。 1.3.2 服务器端 主要任务 1) 分析请求代码 2) 根据请求代码做相应的处理 3) 等待返回结果或者应答信息 表1_3请求码与相应处理 请求代码 对应的处理 GET 向客户端传输文件 PUT 接受客户端的文件 CD 进入目录 LS 将当前目录内容传输给客户端 BYE 断开连接 通信 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 与服务器模型: 本项目通信协议分两种 对于get命令和!ls命令这些需要传输文件内容的命令(!ls需要传输列出的目录文件列表),采用四次握手的通信协议 如图1_1所示 传输的文件内容                             图1_1 四次握手通信协议 以get命令举例,get命令首先发出get请求,服务器程序接收到请求后,发送请求的文件长度或者错误应答码,接收到文件长度后客户端发送RDY应答信息,服务器端开始传输文件内容 对于!CD命令这种不需要传输文件内容的命令采取两次握手通信协议,如图1_2所示 命令执行是否成功                     图1_2 两次握手通信协议       本项目服务器采用多线程并发服务器模型,提供和客户端的交互。 3,源代码目录结构       Svr       ├───common.h 总领整个服务器程序的头文件         ├───command.h 定义命令处理函数和初始化函数头文件         ├───command.c 定义命令处理函数和初始化函数         ├───main.c 定义程序主干函数         └───makefile       Cli         ├───common.h 总领整个服务器程序的头文件,常用头文件皆放于此         ├───command.h 定义命令处理函数和初始化函数头文件         ├───command.c 定义命令处理函数和初始化函数         ├───main.c 客户端主干函数.         ├───input.c 定义命令分解函数,用于处理用户输入的命令         └───makefile 4,核心函数及数据结构定义   4.1 客户端       int do_connect(char *ip, int *sock_fd); 与服务器端进行连接       int do_get(const char *src, const char *dst, int sock_fd);从远端服务器下载文件       int do_put(const char *src, const char *dst, int sock_fd);向远端服务器上传文件       int do_cd(char *path);进入当前主机指定目录       int do_ls(char *path); 列出当前主机指定目录下的内容       int do_serv_cd(char *path, int sock_fd);进入远端服务器指定目录       int do_serv_ls(char *path, int sock_fd);列出当前服务器目录信息       int bye(int sock_fd);退出服务器,关闭连接       int split(struct commamd_line, char line[]);拆分命令相关函数 struct command_line{         char *name;                命令的名称         char *argv[MAX_ARG];      命令携带的参数  }; MAX_LINE        1024        向服务器端发送命令的最大长度 PORT              8000        端口号 COMMAND_LINE  256          用户输入客户端命令的最大长度 MAX_LENGTH      64          每个参数或命令的最大长度 MAX_ARG    5       4.2 服务器       int do_get(const char *src, const char *dst, int sock_fd);  处理用户的put命令       int do_put(const char *src, const char *dst, int sock_fd);  处理用户的get命令       int do_cd(char *path);  处理用户的!cd请求       int do_ls(char *path);  处理用户的!ls请求 ADDR_LEN  17 点分十进制IP地址的长度,包括最后的结束符 5,客户端执行流程   5.1 输出提示信息   5.2 接受用户输入的命令   5.3 输入命令是否为空,为空则程序正常退出,非空则继续   5.4 输入命令是否为bye,是则程序正常退出,否则继续   5.5 处理用户输入的命令   5.6 输出提示信息,继续循环执行5.1—5.5的过程 6,服务器执行流程   6.1 服务器启动   6.2 是否接收到一个连接,是则继续,否则等待   6.3 创建连接是否成功,是则继续,否则打印出错信息   6.4 创建一个子线程,是则继续,否则打印出错信息   6.5 接收客户端传输的命令   6.6 解析命令   6.7 重复6.2—6.6过程
本文档为【linux文件传输项目文档】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_731942
暂无简介~
格式:doc
大小:43KB
软件:Word
页数:0
分类:生活休闲
上传时间:2017-09-20
浏览量:7