第三模块:面向对象&网络编程基础 第4章 FTP项目作业讲解
- 01-FTP项目需求
- 02-FTP项目框架搭建
- 03-FTP项目用户认证
- 04--FTP项目制定标准定长消息头
- 05-FTP项目下载功能开发
- 06-FTP项目下载功能开发2
- 07-FTP项目ls文件列表实现
- 08-FTP项目目录切换功能
- 09-FTP项目目录切换之相对路径问题解决
- 10-FTP项目文件上传功能
- 11-FTP项目进度条功能开发
- 12-FTP项目进度条功能优化
- 13-FTP项目断电续传功能开发
- 14-FTP项目断电续传功能开发2
- 15-FTP项目断点续传功能开发3
01-FTP项目需求
1、需求分析;
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# __Author__:Administrator
# Version:Python3.6.5
# Date:2018/6/23 0023 20:49
""
"""
FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。
需求:
1、支持用户认证;
2、支持多用户-存储了多个用户的账户信息;
3、每个用户有自己的家目录;
4、用户可以在自己的家目录里面进行目录切换操作;
5、用户可以查看当前目录的文件列表,文件名、文件大小;
6、断点续传功能;开发思路:边下载边往本地写,总大小-已经下载的大小,继续写未写的部分;
get file
put file
进度条显示
del file
mkdir dir
对代码的要求:
1、设置目录结构;
2、遵循软件开发规范;
MadFtp目录结构举例:
server
bin
ftp_server.py
conf
settings.py
HOST=""
PORT= 9000
HOME_DIR = "home"
account.py
#configparser模块;
{
alex:{
password:fdasf,
home:/home/tqtl,
quotation:400
}
}
core|modules|lib
main.py#程序主逻辑代码
......
......
log
access.log
#error.log
client
mad_client.py -h 192.168.1.23 -p 9999
username:
password:
#把复杂问题简单化思考;
#一边写一边调试Server.py;
#就得憋出来;要不然凭什么给你十几k薪水;
#项目会比这个复杂几十倍,难道就不完成了吗?
class FTPServer():
def handle():
cmd = data.split()#Get file1
if hasattr(self,cmd)
func = getattr(self.cmd)
func(cmd)
def get(*args,**kwargs)
def put(*args,**kwargs)
def mkdir(*args,**kwargs)
"""
02-FTP项目框架搭建
03-FTP项目用户认证
04--FTP项目制定标准定长消息头
05-FTP项目下载功能开发
06-FTP项目下载功能开发2
07-FTP项目ls文件列表实现
08-FTP项目目录切换功能
09-FTP项目目录切换之相对路径问题解决
10-FTP项目文件上传功能
11-FTP项目进度条功能开发
12-FTP项目进度条功能优化
13-FTP项目断电续传功能开发
14-FTP项目断电续传功能开发2
15-FTP项目断点续传功能开发3
第三模块:面向对象&网络编程基础 第4章 FTP项目作业讲解的更多相关文章
- 第三模块:面向对象&网络编程基础 第3章 选课系统作业讲解
01-选课系统作业讲解1 02--选课系统作业讲解2 03-选课系统作业讲解3 04--选课系统作业讲解4 01-选课系统作业讲解1 02--选课系统作业讲解2 03-选课系统作业讲解3 04--选课 ...
- 第三模块 面向对象& 网络编程基础 实战考核
1.简述构造方法和析构方法. 构造方法(__init__):主要作用是实例化时给实例一些初始化参数,或执行一些其它的初始化工作,总之因为这个__init__只要一实例化, 就会自动执行,不管你在这个方 ...
- 第三模块:面向对象&网络编程基础 第2章 网络编程
01-计算机基础 02-什么是网络 03-五层协议详解 04-传输层详解 05-什么是Socket 06-基于socket实现简单套接字通信 07-在简单套接字基础上加上通信循环 08-客户端与服务端 ...
- 第三模块:面向对象&网络编程基础 第1章 面向对象
我的失败与梦想(一) 我的失败与梦想之为何创办路飞学城 01-编程范式 02-面向过程编程 03-面向对象编程介绍 04-定义类与实例化出对象 05-如何使用类 06-如何使用对象 07-属性查找与绑 ...
- 用Netty开发中间件:网络编程基础
用Netty开发中间件:网络编程基础 <Netty权威指南>在网上的评价不是很高,尤其是第一版,第二版能稍好些?入手后快速翻看了大半本,不免还是想对<Netty权威指南(第二版)&g ...
- python网络编程基础(线程与进程、并行与并发、同步与异步、阻塞与非阻塞、CPU密集型与IO密集型)
python网络编程基础(线程与进程.并行与并发.同步与异步.阻塞与非阻塞.CPU密集型与IO密集型) 目录 线程与进程 并行与并发 同步与异步 阻塞与非阻塞 CPU密集型与IO密集型 线程与进程 进 ...
- python全栈开发从入门到放弃之socket网络编程基础
网络编程基础 一 客户端/服务器架构 1.硬件C/S架构(打印机) 2.软件C/S架构 互联网中处处是C/S架构 如黄色网站是服务端,你的浏览器是客户端(B/S架构也是C/S架构的一种) 腾讯作为服务 ...
- 网络编程基础之C/S架构和TCP/IP协议
一.何谓C/S架构 C指的是client(客户端软件),S指的是Server(服务端软件),既然我们的的标题是网络编程基础, 那我们就一起来学习怎样写一个C/S架构的软件,实现服务端与客户端软件基于网 ...
- Linux网络编程基础API
第5章 Linux网络编程基础API 探讨Linux网络编程基础API与内核中TCP/IP协议族之间的关系,并未后续章节提供编程基础.从3个方面讨论Linux网络API. socket地址API.so ...
随机推荐
- tomcat配置APR
转载 Windows下配置Tomcat的Apr(包括Https) tomcat bio nio apr 模式性能测试与个人看法 一.windows 下配置Tomcat的APR: 1.到Apache ...
- 课时49.非input标签(掌握)
1.select标签(下拉列表) 什么是下拉列表? 这就是下拉列表 作用: 用于定义下拉列表 格式: <select> <option>列表数据</option> ...
- DB数据源之SpringBoot+MyBatis踏坑过程(七)手动使用Tomcat连接池
DB数据源之SpringBoot+MyBatis踏坑过程(七)手动使用Tomcat连接池 liuyuhang原创,未经允许禁止转载 系列目录连接 DB数据源之SpringBoot+Mybatis踏坑 ...
- binlog2sql 用法
binlog2sql 用法 使用场景:binlog2sql是根据mysql的binlog (要求格式是row)反解析出delete,update操作,对误操作数据进行还原. https://githu ...
- python函数中闭包的概念说明
函数中闭包的概念说明 闭包: 内层函数对外层函数非全局变量的引用,就叫做闭包 判断闭包方法 ._closure_ : 执行后返回有效信息就是闭包,返回none就不是闭包 举例1: 是闭包 def wr ...
- 六个比较好用的php数组Array函数
1. array_column 返回输入数组中某个单一列的值.2. array_filter 用回调函数过滤数组中的元素.3. array_map 将用户自定义函数作用到给定数组的每个值上,返回新的值 ...
- 「PHP」设计模式介绍
引言 最近再看PHP设计模式相关的一些技术文章,网上有关PHP的设计模式范例很少,这里做一些总结仅供参考,不足之处望提出. 参考资料: <大话设计模式>程杰 什么是设计模式 设 ...
- centos升级数据库
Centos下升级MySQL数据库 备份数据 $ mysqldump -u xxx -h xxx -P 3306 -p --all-databases > databases.sql 查看版本 ...
- 虚拟机搭建hadoop的步骤
1.首先是安装Vmware Workstation,下载地址:https://www.vmware.com/products/workstation-player/workstation-player ...
- Learning notes | Data Analysis: 1.2 data wrangling
| Data Wrangling | # Sort all the data into one file files = ['BeijingPM20100101_20151231.csv','Chen ...