此作品是为了完成Windows网络编程大作业而设计的一个模拟Win自带的FTP客户端和FTP服务端实现文件传输的小工具,Bug还很多,功能也比较有限,发出来权当为学弟学妹们做贡献,最后会附上Win网络编程的所有实验内容、实验代码和实验报告。
程序设计思路
1.客户端要支持ls、pwd、cd、put、get指令,对于ls、pwd、cd指令可直接将命令发送到服务端,然后接收服务端的回复。
2.客户端对put指令的处理,客户端检测用户数据的put指令是否正确,如果正确则以二进制形式打开文件,将文件内容发送到服务端,再接收服务端的回复。
3.客户端对get指令的处理,客户端直接将get指令发送到服务端执行,如果收到客户端回复的文件标识符(file),则再进行一次数据接收,并将接收到的数据存放在文件内
4.服务端可以设置FTP的目录,让用户只能查看该目录下的文件和文件夹
5.服务器端对ls指令的处理:用subprocess来生成一个线程执行列目录指令(win下:dir命令;linux下:ls命令)
6.服务器对pwd和cd指令的处理:对于pwd指令,可以直接输出全局变量ftpPath,对于cd指令则改变ftpPath变量的值,支持cd .. 和cd 目录 形式
7.服务器对get指令的处理,从指令中拿出文件名,然后以二进制形式打开,将其数据进行base64编码,然后发送给客户端
8.服务器对put指令的处理,从指令中拿出文件名,然后以二进制形式打开文件,将数据进行base64解码,然后写入文件。
程序原理图
FTP客户端
FTP服务端
- Main函数流程图
- recvCommad函数流程图
- execCommand函数流程图
程序运行截图
客户端连接
ls指令
pwd指令
cd指令
put指令
get指令
bye
程序源码等
FTP客户端与服务端代码下载地址:https://github.com/admintony/FTPClient-FTPServer
Windows网络编程实验内容下载:
链接:https://pan.baidu.com/s/1D3q-nynGBmu--LRg7yvgMw 密码:su9i
Windows网络编程实验代码下载:
链接:https://pan.baidu.com/s/1BHshzvfIfDjKbZdsE6oYtg 密码:cs3g
Windows网络编程实验报告下载:
链接:https://pan.baidu.com/s/1OaFoUx9RUzxJccyB9d973w 密码:dkuw