# file-transfer **Repository Path**: carro/file-transfer ## Basic Information - **Project Name**: file-transfer - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-16 - **Last Updated**: 2026-03-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 局域网文件传输系统 一款专为局域网环境设计的文件传输工具,支持文字消息和文件的快速传输。 ## 功能特性 - **消息传输**:支持文字消息的广播和点对点发送 - **文件传输**:支持任意大小文件的传输,实时显示传输进度 - **在线用户**:实时显示当前在线用户列表 - **消息历史**:自动保存消息历史记录 - **自动重连**:连接断开后自动尝试重连 - **跨平台支持**:支持 Windows 系统 ## 技术架构 ### 技术栈 - **编程语言**:Python 3.8+ - **网络通信**:TCP Socket - **图形界面**:Tkinter - **打包工具**:PyInstaller ### 系统架构 采用客户端-服务器(C/S)架构,所有消息和文件都经过服务器转发: ``` ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ Client A │────▶│ Server │◀────│ Client B │ └─────────────┘ └─────────────┘ └─────────────┘ ``` ### 通信协议 自定义应用层协议,数据包格式: | 字段 | 类型 | 长度 | 描述 | |------------|--------|--------|--------------------------------| | 类型 | byte | 1字节 | 消息类型 | | 目标类型 | byte | 1字节 | 广播/点对点 | | 目标IP长度 | byte | 1字节 | 目标IP字符串长度 | | 目标IP | string | 变长 | 目标IP地址 | | 数据长度 | int | 4字节 | 数据部分长度 | | 数据 | bytes | 变长 | 消息内容或文件数据 | ### 文件结构 ``` file-transfer/ ├── client.py # 客户端主程序(含嵌入式服务端) ├── server.py # 独立服务端程序 ├── common.py # 公共模块(协议、工具函数) ├── requirements.txt # 依赖列表 ├── build.bat # 打包脚本 └── README.md # 说明文档 ``` ## 开发指南 ### 环境要求 - Python 3.8 或更高版本 - Windows 操作系统 ### 安装依赖 ```bash pip install -r requirements.txt ``` ### 运行程序 **方式一:运行客户端(推荐)** ```bash python client.py ``` 客户端内置服务端功能,可在界面中启动/停止服务端。 **方式二:独立运行服务端** ```bash python server.py ``` ### 默认配置 - 默认端口:5678 - 文件保存目录:`D:\file-transfer-data`(若D盘不存在则使用用户目录) - 历史记录文件:`<保存目录>\history.log` - 配置文件:`<保存目录>\config.json` ## 部署说明 ### 打包为可执行文件 运行打包脚本: ```bash build.bat ``` 或在命令行执行: ```bash # 打包客户端(包含服务端功能) pyinstaller --onefile --windowed --name "FileTransfer" client.py # 打包独立服务端 pyinstaller --onefile --console --name "FileTransferServer" server.py ``` 打包后的文件位于 `dist` 目录。 ### 分发部署 将打包后的 `FileTransfer.exe` 分发给用户,双击即可运行,无需安装Python环境。 ## 使用说明 ### 启动服务端 1. 在"服务端控制"区域,确认绑定IP和端口 2. 点击"启动服务端"按钮 3. 服务端启动后,其他客户端可以连接 ### 连接服务器 1. 在"连接区域"输入服务器IP和端口 2. 点击"连接"按钮 3. 连接成功后,在线用户列表会自动更新 ### 发送消息 1. 在在线用户列表选择目标(默认"所有人") 2. 在输入框输入消息内容 3. 点击"发送文字"按钮 ### 发送文件 1. 在在线用户列表选择目标 2. 点击"发送文件"按钮 3. 选择要发送的文件 ## 作者信息 - **作者**:码农小鹿 - **开源地址**:https://gitee.com/carro/file-transfer - **版本**:v1.0.0 ## 许可证 Apache License 2.0 本项目采用 Apache License 2.0 许可证,允许二次开发、商业使用和分发,但必须: - 保留原作者版权声明 - 保留许可证副本 - 修改文件需注明修改内容 详见 [LICENSE](LICENSE) 文件。