linux文件传输项目文档.doc

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

局域网文件传输系统项目说明 需求说明: 1,开发平台 linux x86 64 支持Debian Ubuntu 支持rhel,centos,Fedora 2,功能说明 文件上传与下载,讲指定文件上传到服务器,或从服务器下载文件到指定位置 文件浏览,浏览本地文件以及服务器端文件 概要 功能说明 客户端 主要任务: 分析用户输入的命令 根据命令向服务器端发出请求 等待服务器返回的结果 表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请求码与相应处理 请求代码 对应的处理 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 向服务器端发送命令

文档评论(0)

159****0071 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档