Linux_6:FTP云盘项目
1.FTP云盘项目介绍
FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP 协议提供服务。 FTP是File Transfer Protocol(文件传输协议)。 程序运行,服务端不断接收客户端指令,服务端可同时处理多个客户端接入并对指令作出解析,并把执行结果返回给客户端,客户端根据服务端对指令的 解析并把由服务端传递过来的处理信息通过客户端呈现给客户,实现文件的各种操作。
2.基本功能
利用socket实现云盘的:
ls———查看服务端文件
lls———查看客户端自己的文件
cd———切换服务端目录
lcd———切换客户端自己的目录
put———上传文件
get———下载文件
3.流程示意图基本思路
1.流程图:

2.基本思路
服务端:
1:socket 创建服务端的套接字
2:bind 端口号和IP地址
3:listen 监听客户端的连接
4:accept 接受客户端的接 入
5:read 接收客户端发送的message
6:服务端开始处理从客户端接收到的消息
7:send (write)服务端的 msg到客户端
客户端:
1.socket 创建客户端的套接字 ,构建客户端和服务端发送和接收信息的桥梁
2.connect 连接上服务端
3.获取用户键盘输入,处理输入命令buf
4.send (write)客户端的command到服务端
5.read 服务端返回的message
4.函数
1.strtok
char *strtok(char *str, const char *delimiters)
参数:
str:在第一次调用时,这是你要被分割的字符串的指针。
在后续的调用中,你应该传入
NULL。函数会从它上一次保存的位置继续分割。
delimiters:这是一个字符串,包含了所有被视为分隔符的字符。
返回值:
成功时:返回一个指向下一个找到的子字符串 的指针。
没有更多子字符串可找时:返回
NULL指针。
2.popen
popen 的主要作用是创建管道并启动另一个进程,实现进程间的通信(IPC)。
FILE *popen(const char *command, const char *type);
command:要执行的shell命令的字符串。
例如:
"ls -l","grep hello","wc -l"
type:管道的数据流方向:
"r":读取模式。C程序从被调用进程的标准输出读取数据。
"w":写入模式。C程序向被调用进程的标准输入写入数据。返回值:
成功时:返回一个
FILE *指针,可以像操作普通文件一样使用fread,fgets,fprintf等函数。失败时:返回
NULL,并设置相应的errno。
