Skip to content

zangfans/FTP_Server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FTP-Socket
"""
__author:zangfans  2017-10-25
"""

功能说明:
本程序是一个模拟 FTP 的应用,包括客户端和服务端,实现如下功能:
 1 可以实现多客户端连接, 服务端采用 SocketServer 模块实现,支持多客户端连接
 2 实现客户端登录验证,  对客户端登录时采用 sha224 加密算法进行加密,
 3 对用户访问目录进行限制,只允许在自己家目录下进行访问,不能进入其他用户目录
 4 对用户上传目录磁盘进行限制,支持不同用户定义不同大小,默认500M
 5 支持文件上传、下载的进度显示
 6 支持一下命令功能
   put: 上传文件
   get: 下载文件
   show: 显示文件夹内容
   cd: 目录切换
 7 支持断点续传,暂只支持上传时的断点续传,下载暂未实现

目录介绍:

client:
   |--start.py            (主引导程序文件)
   | 
   |--bin                 (主接口文件目录)
   |  |-- ftpclient.py    (主接口文件,登录接口、调用命令模块主文件)
   | 
   |--conf                (配置文件目录)
   |  |-- codes.py        (状态码文件)
   |  |-- settings.py     (系统配置主文件)
   |  |-- tempate.py      (模板文件)
   |
   |--download            (文件下载存放目录)
   |
   |--logs                (日志目录)
   |  |-- ftpclient.log
   |
   |--module              (模块目录)
   |  |-- common.py       (公共模块)
   |  |-- client.py       (客户端类文件,定义客户端所有命令的方法)

-----------------------------------------------------------------------------------

servr:
   |--start.py            (主引导程序文件)
   |
   |--bin                 (主接口文件目录)
   |  |-- ftpserver.py    (主接口文件,登录接口、调用命令模块主文件)
   |
   |--conf                (配置文件目录)
   |  |-- settings.py     (系统配置主文件)
   |  |-- tempate.py      (模板文件)
   |
   |-- database           (数据保存文件)
   |  |-- breakpoint      (断点续传记录文件保存目录,每个用户一个文件)
   |  |-- user.ini        (用户信息保存文件)
   |
   |-- dbhelper
   |  |-- dbapi.py        (数据操作接口)
   |
   |--upload              (用户上传文件存放目录,下面存放所有用户的家目录,一个用户一个文件夹)
   |
   |--logs                (日志目录)
   |  |-- ftpclient.log
   |
   |--module              (模块目录)
   |  |-- common.py       (公共模块)
   |  |-- server.py       (服务端模块文件,定义服务端所有命令的方法)
   |  |-- users.py        (用户类文件,每个客户端连接后会生成一个用户对象,这个类文件用来实例化用户对象)


应用关键模块及知识点:
1 模块:   socket, socketserver, hashlib(md5,sha224),mutilprocess

2 知识点:  多进程、反射、类

About

ftp服务器

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages