声明:
该项目参考学习地址:
http://www.cnblogs.com/lianzhilei/p/5869205.html , 感谢博主分享,如有侵权,立即删除。
作业:开发一个支持多用户在线的FTP程序
要求:
- 用户加密认证
- 允许同时多用户登录
- 每个用户有自己的家目录 ,且只能访问自己的家目录
- 对用户进行磁盘配额,每个用户的可用空间不同
- 允许用户在ftp server上随意切换目录
- 允许用户查看当前目录下文件
- 允许上传和下载文件,保证文件一致性
- 文件传输过程中显示进度条
- 附加功能:支持文件的断点续传
程序:
1、README
# 作者介绍: author: hkey # 博客地址: # 功能实现: 作业:开发一个支持多用户在线的FTP程序 要求: 用户加密认证 允许同时多用户登录 每个用户有自己的家目录 ,且只能访问自己的家目录 对用户进行磁盘配额,每个用户的可用空间不同 允许用户在ftp server上随意切换目录 允许用户查看当前目录下文件 允许上传和下载文件,保证文件一致性 文件传输过程中显示进度条 附加功能:支持文件的断点续传 # 目录结构: FTP/ ├── ftp_client/ # ftp客户端程序 │ ├── ftp_client.py # 客户端主程序 │ ├── __init__.py └── ftp_server/ # ftp服务端程序 ├── conf/ # 配置文件目录 │ ├── __init__.py │ └── settings.py ├── database/ # 用户数据库 │ ├── hkey.db │ └── xiaofei.db ├── ftp_server.py ├── home/ # 用户家目录 │ ├── hkey/ │ └── xiaofei/ ├── __init__.py ├── log/ └── modules/ # 程序核心功能目录 ├── auth_user.py ├── __init__.py └── socket_server.py # 功能实现: 1. 初始化配置在conf下的settings.py 文件里声明,第一次运行创建用户家目录(home/)和数据文件(database/) 2. 每个用户的磁盘配额为10M, 在conf/settings.py 中声明, 可以修改 3. 本程序适用于windows,命令:cd / mkdir / pwd / dir / put / get 4. 实现了get下载续传的功能: 服务器存在文件, 客户端不存在,直接下载; 服务器存在文件, 客户端也存在文件,比较大小, 一致则不传,不一致则追加续传; # 状态码: 400 用户认证失败 401 命令不正确 402 文件不存在 403 创建文件已经存在 404 磁盘空间不够 405 不续传 200 用户认证成功 201 命令可以执行 202 磁盘空间够用 203 文件具有一致性 205 续传
# 作者介绍: author: hkey # 博客地址: http://www.cnblogs.com/hukey/p/8909046.html # 功能实现: 作业:开发一个支持多用户在线的FTP程序 要求: 用户加密认证 允许同时多用户登录 每个用户有自己的家目录 ,且只能访问自己的家目录 对用户进行磁盘配额,每个用户的可用空间不同 允许用户在ftp server上随意切换目录 允许用户查看当前目录下文件 允许上传和下载文件,保证文件一致性 文件传输过程中显示进度条 附加功能:支持文件的断点续传 # 目录结构: FTP/ ├── ftp_client/ # ftp客户端程序 │ ├── ftp_client.py # 客户端主程序 │ ├── __init__.py └── ftp_server/ # ftp服务端程序 ├── conf/ # 配置文件目录 │ ├── __init__.py │ └── settings.py ├── database/ # 用户数据库 │ ├── hkey.db │ └── xiaofei.db ├── ftp_server.py ├── home/ # 用户家目录 │ ├── hkey/ │ └── xiaofei/ ├── __init__.py ├── log/ └── modules/ # 程序核心功能目录 ├── auth_user.py ├── __init__.py └── socket_server.py # 功能实现: 1. 初始化配置在conf下的settings.py 文件里声明,第一次运行创建用户家目录(home/)和数据文件(database/) 2. 每个用户的磁盘配额为10M, 在conf/settings.py 中声明, 可以修改 3. 本程序适用于windows,命令:cd / mkdir / pwd / dir / put / get 4. 实现了get下载续传的功能: 服务器存在文件, 客户端不存在,直接下载; 服务器存在文件, 客户端也存在文件,比较大小, 一致则不传,不一致则追加续传; # 状态码: 400 用户认证失败 401 命令不正确 402 文件不存在 403 创建文件已经存在 404 磁盘空间不够 405 不续传 200 用户认证成功 201 命令可以执行 202 磁盘空间够用 203 文件具有一致性 205 续传 000 系统交互码