计算机网络ftp实验Python,python作业:高级FTP程序(示例代码)

要求:

用户加密认证

允许同时多用户登录

每个用户有自己的家目录 ,且只能访问自己的家目录

对用户进行磁盘配额,每个用户的可用空间不同

允许用户在ftp server上随意切换目录

允许用户查看当前目录下文件

允许上传和下载文件,保证文件一致性

文件传输过程中显示进度条

附加功能:支持文件的断点续传

程序流程图:

66322b46610c4280ba3ef0f68cef0f37.jpg

程序Readme:

MiniFTP主要是由三部分组成:服务器端、客户端、管理端。本文主要就是介绍以上三部分内容。

系统初始配置

管理员账号

用户名:admin 密码:password

用户账号:

用户名:zhangsan 密码:123

服务器地址:

IP:127.0.0.1  Port:8808

服务器端

服务器端主要是处于长期运行监控状态。在调用启动之后,即无需再次操作。

涉及文件目录:

cc174106f568431d80f1444912960de6.jpg

Bin文件夹:主要是放置的服务器启动文件,运行该文件夹下的start文件即可启动服务器

Core文件夹:主要存放服务器程序的核心部分,涉及文件的作用如下:

heart.py   主要是服务器与终端的连接方式设定,内部设有相应功能模块

Record.py    此文件是设定的服务器log日志显示和存储的形式

Data文件夹:主要是存放数据,涉及的文件夹和文件作用如下:

Conf文件夹:存放configure.py文件,此文件作用是默认参数配置,默认内容如下图:

e00974739573459798b8b203ce2d5711.jpg

此处存放有当前服务器监控的地址和端口,可更改此处来实现实际需要。

另一个较为重要的是管理员的账号和密码,此程序暂不支持更改管理员账号和密码,但管理员账号和密码是由管理员程序使用的,普通用户程序使用无效。

Docs文件夹:此文件夹主要存放的是客户上传到服务器的文件,存放的原则是按照用户名来创建相应的文件夹。

Log文件夹:此文件夹下存放的是系统日志,系统运行之后会按照日期生成对应的日志文件,文件名形式为:年-月-日.txt

Users文件夹:此文件夹下存在两个文件,一个是Quota.txt,存放的是用户当前允许使用的配额。一个是UserAuth.txt,存放的是注册用户的信息。

客户端:

组成:

b87166eee558436782e8c377c87c9d15.jpg

客户端部分涉及到的是MiniClient,此文件夹下主要是有Bin和Core两个文件夹组成。

Bin文件夹下放置程序开始的文件Start.py;Core文件夹下放置程序的核心文件CCore.py

功能:

客户端主界面如下:

a8575f0a9c734f78b0a714075543e236.jpg

普通用户主要涉及以下功能:

输入错误的命令会得到相应的命令提示,输入help也会得到相应的命令提示,但仅为简单命令提示,如图:

809e21086ef24bb3bf93f53fd641eaa8.jpg

具体命令格式请参考如下说明:

1、 put,上传文件

07dd991641cd4407ba88705c2941d967.jpg

语法: put 文件名

PS. 此处的进度条仅支持在cmd环境下显示。

文件上传支持断点续传,即客户端在上传期间,出现错误导致上传未完成,再次登录并上传未完成文件时,系统会继续传输。前提是文件MD5值不改变。

get 下载文件

2dbf4d0c1f934754abcc295545fbdc15.jpg

语法: 1、 get 原文件名  目标文件地址和目标文件名

2、get 原用户名

此处的进度条仅支持在cmd环境下显示。

不指定下载目录,则系统自动选择当前运行文件夹

6846d417964b462195eea93aee91636d.jpg

提供了目的文件地址的,会自动下载到指定目录

abde5b9706ab422f9481532f9beb3cee.jpg

2.创建目录:

a2e4c90614a44e0cb1bd66d2afdceec8.jpg

语法: mkdir 文件夹名

3.删除目录

f6e10d23c7c04c4f9e932822b0190de6.jpg

语法:rm 文件夹名/文件名

4.遍历当前目录的相关信息

a01b621660104597b4b01cff6625d105.jpg

语法:ls

5.切换目录

4e6eea176bd842e9b7bba54d14a58d0d.jpg

语法:cd 文件夹名

若需返回上层目录,则可以使用 cd ..来进行切换

6.显示当前所在目录的信息

c617fb24660a4528863dac942e211e4a.jpg

语法:pwd

若需要退出,可直接输入“bye”退出程序

管理端

组成:

848b81d008a045b389f3c7bcddb973be.jpg

管理端部分涉及到的是MiniAdmin,此文件夹下主要是有Bin和Core两个文件夹组成。

Bin文件夹下放置程序开始的文件start.py;Core文件夹下放置程序的核心文件ACore.py

功能:

管理员需要使用专用端与服务器进行通信,管理员界面显示的主要功能如下:

251e6cb7f1eb4d51862dfbec4f21ecf2.jpg

1、 注册用户

可注册允许登录ZFTP的普通用户账号

2、 删除用户

可删除当前已存在的普通用户账号

3、 查看用户

可查看当前已存在的普通用户账号。

4、 修改配额

可修改注册用户的空间配额值

5、 退出

退出系统

目前不支持管理员更改自身的用户名和密码。

已修复BUG

1、 将客户端端口号规范至合理范围(0-65535)。

2、 断点续传方面,解决传输终端后再次传输引起的非正常MD5值不一致问题。

3、 断点续传方面,解决客户端在使用非法文件替换合法文件引起MD5值不一致后,再次用合法文件传输仍旧出现MD5不一致的情况。

4、 解决传输超过空间限额的文件时引起的系统崩溃。

附:断点续传简要说明

1、 首先使用客户端连接至服务器

ab8286e60cb446f08a38d2f32d1381fa.jpg

2、 上传文件并终端客户端

3fb7146f85ab467b9a794dc7598928b5.jpg

3、 重新登录服务器:

8039447593974f3f8ea52f3c795c323b.jpg

4、 重新进行上传

2a5e31fa48ba4e6aab3d0d52cfce082c.jpg

5、 若上传文件名一样但是内容不一样的文件,则会报错:

服务器报以下提示:

2fe22b561a4d4ebdbd2e993a47f6e74d.jpg

客户端报以下提示:

4c63c21a9d8b4a07b83c32e2d4582d7e.jpg

代码链接:

链接:http://pan.baidu.com/s/1pKEXw5X 密码:xikg

以上仅为参考,希望不要照抄。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值