纯属个人记录性质,大佬绕道!!!

参考了网上的代码

一.需求说明

这是网络课程的大作业,

FTP客户端:

FTP客户端要求具有图形化界面、上传、下载功能,鼓励实现断点续传功能。

对于这个题,其实我很懵。题目说的很不清楚。至少有以下疑问:

1 题目只说了客户端,那服务器端呢???没有服务器端,客户端连啥???

2 既然肯定要有服务器端,那服务器端可以自己模拟么,还是必须要组服务器?

本着省钱省事的原则,既然他没说,那就先自己模拟一下。

技术方案:

本着省事的原则,那就用python吧,嘻嘻。

服务器端利用socketserver 客户端直接使用socket。

二. 具体实现

服务器端要实现的功能:

1接受客户端上传的文件

2 提供基本的用户注册,登录功能,以区分不同的用户。

3 显示不同用户目录下的文件

4 为客户端提供下载

整个过程的流程:

启动服务器端-> 客户端连接服务器端(端口与服务器创建的端口一致)->服务器端向客户端发送'welcome' ->客户端接收到welcome并输出->客户端要求输入用户名密码->

1 首先服务器端。一个主要的类Myserver,继承自标准库socketserver.BaseRequestHandler

socketserver内部使用IO多路复用以及“多线程”和“多进程”,从而实现并发处理多个客户端请求的scoket服务端。即,每个客户端请求连接到服务器时,socket服务端都会在服务器是创建一个“线程”或“进程”专门负责处理当前客户端的所有请求。ThradingTCPServer实现的socket服务器内部会为每个client创建一个“线程”,该线程用来与客户端进行交互。

使用ThradingTCPServer的三个步骤:创建一个继承 socketserver.BaseRequestHandler 的类

类中必须定义一个名为handle 的方法

启动 服务器端