首先我们要建立服务端和客服端。建立服务端的步骤有:
只要记住创建服务端的API就能很快建立。具体步骤在我的读书笔记——网络配置中有说到。建立客户端则更加简单,省去bind和listen的步骤就好。把网络框架建立好之后开始创建它的功能。功能有:ls(显示服务端文件);get(下载服务端文件);put(上传本地文件到服务端);quit(退出);cd(切换目录);高级功能:用户名密码验证、get,put传输的文件,进行md5校验、显示历史记录(链表)。
首先建立几个模块来服务这个项目。(日志模块、公用结构体、链表)
1.建立日志模块有助于我们在编写程序时,可以随时随地地监视程序运行发生了什么。主要学会理解va一系列API。
2.然后建立结构体方便后面引用:这里要用到枚举类型(enum)
3.建立一个链表(主要用于历史记录功能)将服务端收到的客户端的命令建立成链表,有需要时在发送给客户端。(主要用到链表的遍历、创建、添加)
创建ls功能:首先我们要对客户端发出的命令进行判断,之后要对ls具体命令也要进行分析(用字符分割来进行判断)。在客户端和服务端收发时都要进行清空缓存区)
服务端也要建立一个判断收到的指令的函数:
2.get命令 (还是需要用到字符分割来对命令进行判断——判断get的文件)这里为了方便识别,给get到的文件加上‘_’,给put的文件加“+”。将需要get的文件告诉服务端让它复制文件的内容,然后将文件的内容存储到结构体中发送给客户端,存放到客户端新建立的文件当中。
3.put命令(与get命令类似,但是对象不一样)。
先在客户端复制要put的文件,然后将其发送给服务端,存放在服务端新建立的文件当中。
4.cd命令。先对cd命令使用字符分割解析,然后再服务端使用chdir函数来转换目录(主要在服务端操作)。
5.quit命令。用户输入quit,客户端处理quit命令,服务端处理quit命令。服务端建立一个全局变量,当收到quit命令时,改变这个全局变量,以这个变量来作为判断循环的条件。
6.用户名密码验证。在服务端建立一个存放用户名及密码的文件。客户端(建立用户名密码结构体)先发送验证信息给服务端,然后服务端将其与存放用户名及密码的文件内容进行比对,不相同则退出。
7.历史记录显示。在服务端不管收到什么命令都要建立一个链表来存放这些命令。当收到客户端的需要历史记录的命令时。遍历这个链表,输出其存放的命令到结构体文本中,在发送给客户端即可。
在Linux上建立FTP项目,文件传输协议,通过网络传送文件
最新推荐文章于 2024-06-24 21:55:27 发布