• 【python练习】基于socket的FTP程序(仅支持单用户)


    程序功能

    本程序模拟实现了一个FTP程序:
    1.程序分为客户端和服务端
    2.用户可以登录和注册账号,登录密码有MD5加密
    3.每个用户有自己的家目录 ,且只能访问自己的家目录
    4.用户可以随意切换目录(仅限自己的家目录)
    5.允许用户查看当前目录下文件
    6.允许上传和下载文件,保证文件一致性(md5),(不允许下载/上传文件夹,会出现不可恢复bug,用户配置文件需要重置。时间原因没有加判断)
    7.文件传输过程中显示进度条
    8.支持文件上传、下载的断点续传
    

    测试:

    数据为空,需要手动创建添加
    1.需要自行注册账号
    2.本地上传的文件,应放在clientdb用户名uploads中
    3.下载的文件会自动存储在clientdb用户名downloas中
    4.不能下载/上传文件夹,会出现不可恢复bug
    

    程序结构:

    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         # 主逻辑交互程序
        │   └── register.py     # 注册模块
        ├── db #用户数据存储的地方
        │   ├── accounts.ini  # 用户配置文件,存放账号、密码(MD5)
        │   └── disk # 存放各用户上传下载文件
        │        ├── 用户名文件1 # 用户名文件
        │        │       ├── downloads # 下载的文件存放目录
        │        │       └── uploads # 需要上传的文件目录
        │        └── 用户名文件2 # 用户名文件
        │                ├── downloads # 下载的文件存放目录
        │                └── uploads # 需要上传的文件目录
        └── logs #日志目录
        │   ├── init.py
        │   └── access.log #用户访问和操作的相关日志
        └── FTP_server # server端程序主入口
    
  • 相关阅读:
    mysql nulls first nulls last解决方案
    解决Incorrect integer value: '' for column 'id' at row 1的方法
    Centos 7.4忘记密码的情况下,修改root密码
    解决pom文件第一行报错(unknown)-亲测有效
    快慢指针应用总结
    gRPC 小记
    [3D跑酷] DataManager
    [3D跑酷] GameManager
    发布资源到Asset Store
    真人动作捕捉系统 for Unity
  • 原文地址:https://www.cnblogs.com/q1ang/p/9556646.html
Copyright © 2020-2023  润新知