Skip to content

yingoja/FTPServer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

FTPServer

功能需求

  • 用户加密认证
  • 服务端采用 SocketServer实现,支持多客户端连接
  • 每个用户有自己的家目录且只能访问自己的家目录
  • 对用户进行磁盘配额、不同用户配额可不同
  • 用户可以登陆server后,可切换目录
  • 能查看当前目录下文件
  • 上传下载文件,保证文件一致性
  • 传输过程中实现进度条展示
  • 用户可在自己家目录进行创建目录、文件、删除目录及文件
  • 服务端可实现增加用户、删除用户
  • 支持上传时断点续传

知识点

  • 类的应用
  • 函数的使用
  • 多进程
  • 反射
  • socket、socketserver、hashlib、configparser、logging
  • 文件的读写

开发环境

  • python 3.6.1
  • PyCharm 2016.2.3

目录结构

FTPClient

   |--bin              (主接口目录)

  |--ftpclient.py    (客户端主程序接口文件)

  |--config           (配置文件目录)

   |--code.py (状态码文件)

   |--settings.py (配置文件)

   |--template.py (模板文件)

  |--download        (下载存放目录)

  |--lib              (模块目录)

   |--client.py (客户端各类接口封装)

   |--common.py (公共接口)

  |--logs            (日志目录)

   |--ftpclient.log (日志文件)

  |--clientRun.py (主执行程序)

FTPServer

   |--bin               (主接口目录)

  |--ftpserver.py      (服务端socket接口文件)

    |--main.py        (主程序接口文件)

  |--config            (配置目录)

   |--settings.py (配置文件)

   |--template.py (模板文件)

  |--database (数据保存目录)

   |--user.ini (用户信息文件)

  |--dbhelper (数据目录)

  |--dbapi.py (数据操作接口)

  |--lib (模块目录)

  |--user.py (用户类文件用来实例化对象)

   |--server.py (服务端模块,各类所有命令方法)

  |--common.py    (公共模块文件)

  |--logs

  |--ftpserver.log   (日志文件)

  |--upload (上传文件存放的目录)

  |--serverRun.py (主执行程序)

模块功能导图 Image 输出结果展示 Image

Image

Image

Image

Image

Image

About

基于socket的FTP服务器

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages