1 Star 0 Fork 0

Apphao/FtpTool

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
FTP服务端和客户端通信协议:
客户端 ——> 服务端
msg_data = {
	"action_type": action_type,
	"fill": "",
	"key1": value1,
	"key2": value2,
	...
}

服务端 ——> 客户端
data = {
	"status_code": status_code,
	"status_msg": STATUS_CODE[status_code],
	"fill": "",
	"key1": value1,
	"key2": value2,
	...
}

FTP服务器程序:
1. start.py
	启动程序,接收用户参数(start/stop/restart/createuser)
		一、实例化一个ManagementTool类的对象
		二、执行该对象下的execute()函数
	
2. management.py
	定义ManagementTool类:解析用户参数,执行相应功能
	成员函数:
		1. __init__(self, sys_argv)
			接收并校验命令行参数
		2. verify_argv(self)
			验证指令参数合法性
		3. help_msg(self)
			退出并输出帮助信息
		4. execute(self)
			执行指令
		5. start(self)
			开启FTP服务器
		6. stop(self)
			停止FTP服务器
		7. restart(self)
			重启FTP服务器
		8. createuser(self)
			创建用户
	
3. main.py
	定义FTPserver类:处理与客户端的交互
	成员函数:
		1. __init__(self, management_instance)
			初始化服务端套接字并从ini文件中加载所有账户信息
		2. load_accounts(self)
			加载所有账号信息
		3. run_forever(self)
			启动socket server
		4. handle(self)
			处理与用户的所有指令交互
		5. authenticate(self, username, password)
			用户认证方法
		6. send_response(self, status_code, *args, **kwargs)
			打包发送消息给客户端
		7. _auth(self, data)
			处理用户认证请求
		8. _get(self, data)
			服务端下载文件

FTP客户端程序
ftpclient.py
	定义FtpClient类:ftp客户端
	成员函数:
		1. __init__(self)
			处理参数,创建套接字
		2. argv_verification(self)
			检查参数合法性
		3. make_connection(self)
			建立socket连接
		4. interactive(self)
			处理与FtpServer的所有交互
		5. auth(self)
			用户认证
		6. _get(self, cmd_args)
			下载文件
		7. _put(self)
			上传文件
		8. parameter_check(self, args, min_args=None, max_args=None, exact_args=None)
			登录成功后的指令参数个数合法性检查
		9. send_msg(self, action_type, **kwargs)
			打包消息并发送到远程
		10.get_response(self)
			获取服务器端返回

空文件

简介

使用Python练习Socket和面向对象编程 展开 收起
Python
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/apphao/ftp-tool.git
git@gitee.com:apphao/ftp-tool.git
apphao
ftp-tool
FtpTool
master

搜索帮助