python练习基于socket的FTP程序 v1.1.0(支持并发)
Posted q1ang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python练习基于socket的FTP程序 v1.1.0(支持并发)相关的知识,希望对你有一定的参考价值。
增加功能
1.在FTP(1.0.0)的基础上,支持了多并发的功能
2.允许配置最大并发数,比如允许只有10个并发用户
程序功能:
本程序模拟实现了一个FTP程序:
1.程序分为客户端和服务端
2.用户可以登录和注册账号,登录密码有MD5加密
3.每个用户有自己的家目录 ,且只能访问自己的家目录
4.用户可以随意切换目录(仅限自己的家目录)
5.允许用户查看当前目录下文件
6.允许上传和下载文件,保证文件一致性(md5),(不允许下载/上传文件夹,会出现不可恢复bug,用户配置文件需要重置。时间原因没有加判断)
7.文件传输过程中显示进度条
8.支持文件上传、下载的断点续传
测试:
数据为空,需要手动创建添加
1.需要自行注册账号
2.本地上传的文件,应放在clientdb用户名uploads中
3.下载的文件会自动存储在clientdb用户名downloas中
4.不能下载/上传文件夹,会出现不可恢复bug
程序结构:
仅在core下添加了MyThreadPool.py
FTP/
└── ├── README
├── client # 客户端程序目录
└── server # 服务端程序目录
FTP/client/
└── ├── conf # 配置文件
│ ├── init.py
│ └── settings.py
├── core # 主要程序逻辑都
│ ├── init.py
│ ├── login.py # 登陆模块
│ ├── main.py # 主逻辑交互程序
│ └── register.py # 注册模块
├── db #用户数据存储的地方
│ └── disk # 存放各用户上传下载文件
│ ├── 用户名文件1 # 用户名文件
│ │ ├── downloads # 下载的文件存放目录
│ │ └── uploads # 需要上传的文件目录
│ └── 用户名文件2 # 用户名文件
│ ├── downloads # 下载的文件存放目录
│ └── uploads # 需要上传的文件目录
└── FTP_client # client端程序主入口
FTP/server/
└── ├── conf # 配置文件
│ ├── init.py
│ └── settings.py
├── core # 主要程序逻辑都
│ ├── init.py
│ ├── logger.py # 日志记录模块
│ ├── login.py # 登陆模块
│ ├── main.py # 主逻辑交互程序
│ ├── MyThreadPool.py # 线程池
│ └── register.py # 注册模块
├── db #用户数据存储的地方
│ ├── accounts.ini # 用户配置文件,存放账号、密码(MD5)
│ └── disk # 存放各用户上传下载文件
│ ├── 用户名文件1 # 用户名文件
│ │ ├── downloads # 下载的文件存放目录
│ │ └── uploads # 需要上传的文件目录
│ └── 用户名文件2 # 用户名文件
│ ├── downloads # 下载的文件存放目录
│ └── uploads # 需要上传的文件目录
└── logs #日志目录
│ ├── init.py
│ └── access.log #用户访问和操作的相关日志
└── FTP_server # server端程序主入口
以上是关于python练习基于socket的FTP程序 v1.1.0(支持并发)的主要内容,如果未能解决你的问题,请参考以下文章