zoukankan      html  css  js  c++  java
  • 【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端程序主入口
    
  • 相关阅读:
    Atitit 华为基本法 attilax读后感
    Atitit 华为管理者内训书系 以奋斗者为本 华为公司人力资源管理纲要 attilax读后感
    Atitit 项目版本管理gitflow 与 Forking的对比与使用
    Atitit 管理的模式扁平化管理 金字塔 直线型管理 垂直管理 水平管理 矩阵式管理 网状式样管理 多头管理 双头管理
    Atitit 乌合之众读后感attilax总结 与读后感结构规范总结
    深入理解 JavaScript 异步系列(4)—— Generator
    深入理解 JavaScript 异步系列(3)—— ES6 中的 Promise
    深入理解 JavaScript 异步系列(2)—— jquery的解决方案
    深入理解 JavaScript 异步系列(1)——基础
    使用 github + jekyll 搭建个人博客
  • 原文地址:https://www.cnblogs.com/q1ang/p/9610181.html
Copyright © 2011-2022 走看看