第三模块:面向对象&网络编程基础 第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 ...
随机推荐
- SSH框架——(二)四层结构:DAO,Service,Controller,View层
1. DAO层: 主要任务:做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此. DAO层的设计:首先是设计DAO层的接口,然后再Spring的配置文件中定义此接口的实现类,然后就可以在模块 ...
- jpa的修改更新操作
***指定id的保存就等于修改!!! save 指定id直接调用save()
- 十六、详述 IntelliJ IDEA 创建 Maven 项目及设置 java 源目录的方法
Maven 是一个优秀的项目管理工具,它为我们提供了一个构建完整的生命周期框架.现在,就让我们一起看看如何利用 IntelliJ IDEA 快速的创建 Maven 项目吧! 如上图所示,点击Creat ...
- H5基本标签
- php开发微信图灵机器人
本着开源为原则,为这个世界更美好作出一份共享,我就给大家做个指路人,如果实用,记得给提供开源的朋友一些鼓励. 简单介绍一下实现思路,使用swoole扩展接管php运行,由于swoole只能在类UNIX ...
- javaSpring知识点总结
1 js 概述 js是一门基于对象和事件驱动的脚本语言,主要应用在客户端 js特点: 交互性(信息的动态交互) 安全性(不允许直接访问本地硬盘) 跨平台(只要是可以解释js的浏览器都可以执行,和平台无 ...
- python3 基于tcp 简单client和server
客户端代码 from socket import * #客户端 client=socket(AF_INET,SOCK_STREAM) #通讯地址 client.connect(('172.18.100 ...
- injection for Xcode10使用方法
对于一个使用Xcode的使用者来说,麻烦的地方在于使用代码布置界面时候的调试,5s改一下代码,用10s查看修改效果,如果电脑配置稍低,时间更长,这是病,得治,哈哈.下面就来说一下injection的使 ...
- Colored Boots题解
题目来自Codeforce 1141Dhttp://codeforces.com/problemset/problem/1141/D 因为是全英文题面,就先简单的阐述一下题面. 首先输入一个数n,然后 ...
- MFC+ODBC+SQL Server+Visual C++
利用SQL Server 和MFC实现对数据库的简单管理 工具:SQL Server,VC6.0 步骤如下: 1.建立一个数据库studentinfo,再建立一个表testtable,表设计和初始值如 ...