作业题目: 开发一个支持多用户在线的FTP程序

  • 作业需求:

    要求
    1.用户加密认证(已实现)
    2.允许同时多用户登录
    3.每个用户有自己的家目录 ,且只能访问自己的家目录(已实现)
    4.对用户进行磁盘配额,每个用户的可用空间不同
    5.允许用户在ftp server上随意切换目录(已实现)
    6.允许用户查看当前目录下文件(已实现)
    7.允许上传和下载文件,保证文件一致性(md5)(已实现)
    8.文件传输过程中显示进度条(已实现)
    9.附加功能:支持文件的断点续传(已实现)

 FTP实现实现并发,在main模块里进行修改,增加了mytherad.py

1.在之前开发的FTP基础上,开发支持多并发的功能
2.不能使用SocketServer模块,必须自己实现多线程
3.必须用到队列Queue模块,实现线程池
4.允许配置最大并发数,比如允许只有10个并发用户

C:.
│ RAMDE
│ 
│ __init__.py

├─ftpclient
│ ..bak
│ ..dat
│ ..dir
│ a.txt
│ client.py -- 客户端
│ __init__.py

└─ftpserver
│ __init__.py

├─bin
│ server.py ----- 启动文件
│ __init__.py

├─conf
│ │ account.ini  ---- 用户数据
│ │ setting.py ----- 配置文件
│ │ __init__.py
│ │
│ └─__pycache__
│ setting.cpython-36.pyc
│ __init__.cpython-36.pyc

├─core
│ │ logger.py  ----  日志
│ │ main.py  ----- 主程序
│ │ main_server.py  --- 解析命令
│ │ mythread.py --- 实现线程,定义线程池
│ │
│ └─__pycache__
│ logger.cpython-36.pyc
│ main.cpython-36.pyc
│ main_server.cpython-36.pyc
│ __init__.cpython-36.pyc

├─home
│ │ __init__.py
│ │
│ └─alex  ---- 主目录
│ a.txt
│ 

└─log ---  日志文件

注:需要在cmd上运行程序,否则会报错,服务端:python server.py start  客户端:python client.py  -s ip地址 -P 端口

 

server.py

 1 #!/usr/bin/env python3
 2 # -*- coding:utf-8 -*-
 3 import os
 4 import sys
 5 
 6 
 7 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
 8 sys.path.append(BASE_DIR)
 9 
10 if __name__ == '__main__':
11     from core import main_server
12     argv_parser = main_server.Mangement(sys.argv)
13     argv_parser.execute()
View Code

相关文章: