纯属个人记录性质,大佬绕道!!!
参考了网上的代码
一.需求说明
这是网络课程的大作业,
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 的方法
启动 服务器端