题目:开发一个支持多用户同时在线的FTP程序
要求:
1.用户加密认证
2.允许同时多用户登录
3.每个用户有自己的家目录,且只能访问自己的家目录
4.对用户进行磁盘配额,每个用户的可用空间不同
5.允许用户在ftp server上随意切换目录
6.允许用户查看当前目录下的文件
7.允许上传和下载文件,并保证文件的一致性md5
8.文件传输过程中显示进度条
9.支持文件的断点续传
-------
题目:基于线程开发一个FTP服务器:
要求:
1.在之前开发的FTP基础上,开发支持多并发的功能
2.不能使用SocketServer模块,必须自己实现多线程
3.必须用到队列Queue模块,实现线程池
4.允许配置最大并发数,比如允许只有10个并发用户 ------------------------------------------------------
结构:
.
├── client
│   ├── download 下载存放路径
│   │   ├── 1.jpg
│   │   └── 2.jpg
│   ├── ftp_client.py 客户端启动文件
│   └── upload 上传存放路径
│   ├── 11.jpg
│   ├── 1.jpg
│   ├── 22.jpg
│   ├── 2.jpg
│   ├── com.mp4
│   ├── python.txt
│   ├── test_argument.py
│   ├── test.py
│   └── test.txt
├── README
└── server
├── bin
│   └── ftp_server.py 服务端启动文件
├── conf
│   ├── accounts.ini 用户信息
│   └── settings.py 配置文件
├── core
│   ├── file_handle.py 文件处理模块
│   ├── logger.py logger模块
│   ├── main.py 主程序
│   ├── server.py server模块
│   └── user_handle.py 处理accounts.ini文件,增加用户,判断用户
├── home 用户的home目录
│   ├── alice
│   │   ├── 1.jpg
│   │   ├── 2.jpg
│   │   ├── com.mp4
│   │   └── test
│   │   └── 2.jpg
│   ├── alice_a
│   │   └── 2.jpg
│   └── lily
│   ├── 1.jpg
│   ├── 2.jpg
│   ├── tt
│   │   ├── 1.jpg
│   │   └── com.mp4
│   └── tt1
└── log
├── manager.log manager创建用户的记录
└── user.log 用户上传,下载记录 ------------------------------------------------------
使用:
1.终端启动 python3 ftp_server.py
2.创建用户,输入 username quota
3.启动ftp服务器
4.终端启动 python3 ftp_client.py -s 127.0.0.1 -p 8083 / 查看帮助: python3 ftp_client.py -h
5.输入用户名,密码; alice 123 lily 123 alice_a 123 有三次机会
6.与server交互:
6.1. get a.txt 下载文件
6.2. put a.txt 上传文件
6.3. ls 查询当前目录下的文件列表
6.4. mkdir test 创建文件夹
6.5. cd test 切换目录
6.6. rm a.txt/test 删除文件或空文件夹
github: 
  windows版本: https://github.com/alice-bj/ftp_windows
  linux版本:  https://github.com/alice-bj/ftp_linux
												

4.1 - FTP文件上传下载的更多相关文章

  1. Python 基于Python实现Ftp文件上传,下载

    基于Python实现Ftp文件上传,下载   by:授客 QQ:1033553122 测试环境: Ftp客户端:Windows平台 Ftp服务器:Linux平台 Python版本:Python 2.7 ...

  2. 【FTP】FTP文件上传下载-支持断点续传

    Jar包:apache的commons-net包: 支持断点续传 支持进度监控(有时出不来,搞不清原因) 相关知识点 编码格式: UTF-8等; 文件类型: 包括[BINARY_FILE_TYPE(常 ...

  3. java/struts/Servlet文件下载与ftp文件上传下载

    1.前端代码 使用超链接到Struts的Action或Servlet <a target="_blank" href="ftpFileAction!download ...

  4. python 实现远端ftp文件上传下载

    python 实现ftp上传下载 * 脚本需要传入两个参数,参数1为需要从远端ftp站点下载文件名称,参数2为已知需要下载的文件md5值,文件下载完成后会自动进行md5值校验 * 运行示例 [root ...

  5. java实现ftp文件上传下载,解决慢,中文乱码,多个文件下载等问题

    //文件上传 public static boolean uploadToFTP(String url,int port,String username,String password,String ...

  6. ftp文件上传下载命令

    介绍:从本地以用户wasqry登录的机器1*.1**.21.67上通过ftp远程登录到ftp服务器上,登录用户名是lte****,以下为使用该连接做的实验.  查看远程ftp服务器上用户lte**** ...

  7. ftp文件上传下载实用命令

    连接 >ftp yourhost >user yourusername >password your password 顺利的话连接成功 >dir ;获取remote目录列表 ...

  8. Java 利用Apache Commons Net 实现 FTP文件上传下载

    package woxingwosu; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import ...

  9. 3.2 - FTP文件上传下载

    题目:开发一个支持多用户同时在线的FTP程序要求:1.用户加密认证2.允许同时多用户登录3.每个用户有自己的家目录,且只能访问自己的家目录4.对用户进行磁盘配额,每个用户的可用空间不同5.允许用户在f ...

随机推荐

  1. Photoshop学习笔记(1)--界面设置

    根据慕课网教学视频整理(抄了一个妹子的评论): http://www.imooc.com/video/9813 ps版本:CS6 步骤: 1.视图->显示->智能参考线,以及视图-> ...

  2. am335x omap serial 驱动分析

    am335x 自身的 uart 驱动集成在 kernel 的 arch/arm/mach-omap2/ 里面. 文件是 arch/arm/mach-omap2/serial.c // 看到最底部 om ...

  3. 如何测试是否安装了web服务器

    windows默认没有安装web服务器,我们可以安装IIS. 我们安装个tomacte服务器,开发web程序必须的!!如果测试后出现这个页面说明安装成功le ! 我们这个安装的是本地服务器,可以把we ...

  4. 在ubuntu下安装sourceinsight

    执行更新与安装 wine: # sudo apt-get update # sudo apt-get install wine 下载SourceInsight,用wine来安装: 执行:wine so ...

  5. Android——Activity和Intent及Activity的生命周期

    实验Activity的生命周期 package com.example.chenshuai.test; import android.app.Activity; import android.os.B ...

  6. [转]基于Storm的实时数据处理方案

    1 文档说明 该文档描述的是以storm为主体的实时处理架构,该架构包括了数据收集部分,实时处理部分,及数据落地部分. 关于不同部分的技术选型与业务需求及个人对相关技术的熟悉度有关,会一一进行分析. ...

  7. 常用的easyui使用方法

    -------datagrid 1.获取某行的行号(row)tdg.datagrid('getRowIndex',rows)2.通过行号移除该行tdg.datagrid('deleteRow',ind ...

  8. 一个RESTful服务,用来定位运行在AWS地区(Region)中的中间层服务

    Eureka 一个RESTful服务,用来定位运行在AWS地区(Region)中的中间层服务.由两个组件组成:Eureka服务器和Eureka客户端.Eureka服务器用作服务注册服务器.Eureka ...

  9. Bufferread有readline()使得字符输入更加方便

    原则:保证编解码方式的统一,才能不至于出现错误. Io包的InputStreamread称为从字节流到字符流的桥转换类.这个类可以设定字符转换方式. OutputStreamred:字符到字节 Buf ...

  10. 学习:erlang用链表实现大容量的List或者数组。

    链表的内在实质. 效率未知,待测.