- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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 向服务器端发送命令
您可能关注的文档
- DMS350型金刚石水磨石机和水磨石打磨机价格.docx
- DQ2.6配线敷设施工隐蔽验收记录____C.doc
- DMC系列喷吹脉冲单机袋式除尘器(盐富、参考).doc
- DWJ-10防爆声光报警器和船用声光报警器价格.docx
- dyd防爆荧光灯和防爆洁净荧光灯价格.docx
- EMC网上资料.doc
- ee66风速传感器和测风速的传感器价格.docx
- EMI滤波器设计举例n.doc
- ezd塑壳断路器和防爆防腐断路器价格.docx
- FPGA实现串行接口 RS232.doc
- 第18讲 第17课 西晋的短暂统一和北方各族的内迁.docx
- 第15讲 第14课 沟通中外文明的“丝绸之路”.docx
- 第13课时 中东 欧洲西部.doc
- 第17讲 第16 课三国鼎立.docx
- 第17讲 第16课 三国鼎立 带解析.docx
- 2024_2025年新教材高中历史课时检测9近代西方的法律与教化含解析新人教版选择性必修1.doc
- 2024_2025学年高二数学下学期期末备考试卷文含解析.docx
- 山西版2024高考政治一轮复习第二单元生产劳动与经营第5课时企业与劳动者教案.docx
- 第16讲 第15课 两汉的科技和文化 带解析.docx
- 第13课 宋元时期的科技与中外交通.docx
文档评论(0)