作业:开发一个支持多用户在线的FTP程序
要求:
- 用户加密认证
- 允许同时多用户登录
- 每个用户有自己的家目录 ,且只能访问自己的家目录
- 对用户进行磁盘配额,每个用户的可用空间不同
- 允许用户在ftp server上随意切换目录
- 允许用户查看当前目录下文件
- 允许上传和下载文件,保证文件一致性
- 文件传输过程中显示进度条
- 附加功能:支持文件的断点续传(仅下载)
程序
1、最最重要的readme:
### 作者介绍: * author:lzl ### 博客地址: * http://www.cnblogs.com/lianzhilei/p/5813986.html ### 功能实现 作业:开发一个支持多用户在线的FTP程序 要求: 用户加密认证 允许同时多用户登录 每个用户有自己的家目录 ,且只能访问自己的家目录 对用户进行磁盘配额,每个用户的可用空间不同 允许用户在ftp server上随意切换目录 允许用户查看当前目录下文件 允许上传和下载文件,保证文件一致性 文件传输过程中显示进度条 附加功能:支持文件的断点续传 ### 目录结构: FTP │ ├── ftpclient #客户端程序 │ ├── __init__.py │ └── ftpclient.py #客户端主程序 └── ftpserver #服务端程序 ├── README.txt ├── ftpserver.py #服务端入口程序 ├── conf #配置文件目录 │ ├── __init__.py │ └── setting.py ├── modules #程序核心目录 │ ├── __init__.py │ ├── auth_user.py #用户认证模块 │ └── sokect_server.py #sokectserver模块 ├── database #用户数据库 │ ├── alex.db │ ├── lzl.db │ └── eric.db ├── home #用户宿主目录 │ ├── alex │ ├── lzl │ └── eric └── log ├── __init__.py └── log #待扩展.... ### 功能实现 1、conf目录下settings.py模块记录可操作用户信息,根据用户信息生成用户字典和宿主目录,已经生成的不再新建 2、每个用户的宿主目录磁盘空间配额默认为10M,可在settings.py模块里进行修改 3、程序运行在windows系统上,程序要求全部实现,下面是具体命令操作 4、切换目录:cd .. 返回上一级目录 cd dirname 进入dirname 用户登录后默认进入宿主目录,只可在宿主目录下随意切换 5、创建目录:mkdir dirname 在当前目录下创建目录,如果目录存在则报错,不存在创建 6、查看当前路径: pwd 7、查看当前路径下的文件名和目录名: dir 8、下载文件(可续传):get filename ①、服务端当前目录存在此文件,客户端不存在此文件,直接下载 ②、服务端当前目录存在此文件,客户端存在此文件名,之前下载中断,文件可续传,进行续传 ③、服务端当前目录存在此文件,客户端存在此文件名,大小与服务端一致,不下载 9、上传文件:put filename 判断宿主目录磁盘空间是否够用,可以,上传文件;否则,报错 ### 状态码 400 用户认证失败 401 命令不正确 402 文件不存在 403 创建文件已经存在 404 磁盘空间不够 405 不续传 200 用户认证成功 201 命令可以执行 202 磁盘空间够用 203 文件具有一致性 205 续传 000 系统交互码