FTP客户端和服务端的编写

  此作品是为了完成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