** 首先用网络编程的知识创建一个服务端和一个客户端,使他们能实现传输功能**。
1.ls,显示服务端的文件
popen();是一个指向以 NULL 结束的 shell命令字符串的指针。这行命令将被传到 bin/sh并使用 -c 标志,shell 将执行这个命令。
2.get,下载服务端的文件
————————————————
文件名分割!
3.put,上传本地文件到服务端
输入命令后进行字符分割,得到文件名字,然后读取文件内容,将名字和内容发送给服务端,服务端分割字符得到文件名,并创建新的文件,将获取的内容写入新文件中。
get命令类似put。(将服务端的文件传到客户端)
4.quit,退出
5.cd,切换目录
6.高级功能
1.用户名密码验证
用户名密码新创文件存放,输入后再取出进行对比
2.get,put传输的文件,进行md5校验
第一次写的时候获取MD5码在得到文件名,但文件里的内容还没写入之前,所以得到的MD5码是错误的。
memcpy();将两个MD5码的相同字节比较
3.hist,显示历史记录,链表
7.模块划分
1.链表.c/.h,没有头结点的单链表
2.日志模块,fopen();
log_write();的用法和printf的用法基本相似
————————————————
公用的消息, msg.h,结构体
结构体包含所有要使用到的指令。
另一个结构体用来保存服务端和客户端之间传输的命令和文件内容等。