虽然现在网络上有很多共享软件,我是在特殊情况下比如没有互联网,没有安装常用的软件比如QQ微信时可以使用的一个软件。使用打包工具打包成EXE,使用还是方便。
基于Python Tkinter编写的局域网文件共享工具,具有完整的GUI界面,支持服务器和客户端两种模式。
主要功能模块
1. 核心架构
-
双模式设计:服务器模式 + 客户端模式
-
网络通信:基于Socket的TCP通信
-
文件传输:使用Base64编码传输文件数据
-
多线程处理:支持多客户端同时连接
2. 服务器模式功能
-
共享目录管理:设置共享路径和访问权限
-
权限控制:只读/读写两种权限模式
-
客户端管理:处理多个客户端的连接请求
-
操作日志:记录所有客户端操作和服务器事件
-
实时状态监控:显示服务器运行状态
3. 客户端模式功能
-
文件浏览:树形视图显示远程文件
-
文件操作:
-
下载文件/文件夹
-
上传文件(多文件支持)
-
删除文件/文件夹
-
新建文件夹
-
-
路径导航:支持双击进入文件夹和返回上级
-
多选操作:支持框选和Ctrl多选
4. 界面特色
-
现代化GUI:使用ttk样式控件
-
模式切换:动态切换服务器/客户端界面
-
右键菜单:上下文相关操作菜单
-
状态显示:实时显示连接状态和操作结果
-
日志查看:内置日志查看器
技术亮点
1. 网络通信协议
python
# 使用JSON格式的命令协议
{
"type": "list/download/upload/delete/mkdir/get_permission",
"path": "文件路径",
"data": "Base64编码的文件数据"
}
2. 安全机制
-
路径越界检查:防止访问共享目录外的文件
-
权限验证:服务器端验证操作权限
-
连接管理:自动处理断开的客户端连接
3. 配置管理
-
自动保存/加载配置
-
分离的服务器和客户端配置
-
应用状态持久化
4. 用户体验优化
-
多文件批量操作
-
进度状态提示
-
错误处理和信息反馈
-
直观的文件信息显示(大小、类型、修改时间)
代码质量分析
优点:
-
模块化设计:功能分离清晰
-
异常处理:完善的错误捕获和用户提示
-
资源管理:正确关闭socket连接
-
日志系统:详细的运行日志记录
-
配置持久化:自动保存用户设置
潜在改进点:
-
大文件处理:当前使用Base64编码,对大文件效率较低
-
传输进度:缺少文件传输进度显示
-
安全性:无加密传输,适合局域网环境
-
性能优化:大目录列表可能响应较慢
使用场景
-
局域网内文件共享和协作
-
团队项目文件分发
-
临时文件传输需求
-
教学演示环境
-
下面是服务器端界面:
-

-
下面是客户端界面:
-

2063

被折叠的 条评论
为什么被折叠?



