# xmtb **Repository Path**: xkx1029/xmtb ## Basic Information - **Project Name**: xmtb - **Description**: 跨平台局域网P2P文件同步工具 - Windows服务端 + Android客户端 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-20 - **Last Updated**: 2026-08-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # XMTB 文件同步助手 跨平台局域网P2P文件同步工具,支持 Windows 服务端 + Android 客户端。 ## 功能特性 - **局域网设备发现**:通过 UDP 广播自动发现 Windows 服务端 - **文件索引浏览**:实时浏览 Windows 端工作目录的文件列表 - **文件传输**:选择文件后从 Windows 端下载到手机 - **自动同步**:订阅文件后,服务器端文件更新时自动推送到手机 - **实时文件监控**:Windows 端使用 watchdog 监控文件变更 ## 技术架构 ### Windows 端(服务端) - **语言**:Python 3.10+ - **GUI**:PySide6 (Qt6) - **网络**:原生 Socket (TCP + UDP) - **文件监控**:watchdog ### Android 端(客户端) - **语言**:Kotlin - **UI**:Jetpack Compose + Material 3 Expressive - **架构**:MVVM + 协程 ## 通信协议 ### 端口分配 | 端口 | 协议 | 用途 | |------|------|------| | 13500 | UDP | 设备发现广播 | | 9000 | TCP | 文件传输与同步通知 | ### 消息类型 - **DISCOVERY_REQUEST/RESPONSE**:设备发现 - **CONNECT/CONNECT_ACK**:连接握手 - **FILE_LIST_REQUEST/RESPONSE**:文件索引交换 - **FILE_REQUEST/START/CHUNK/COMPLETE**:分块文件传输 - **SYNC_SUBSCRIBE/NOTIFY**:同步订阅与变更推送 - **PING/PONG**:心跳检测 ### 消息帧格式 ``` [4字节消息长度][JSON消息体] ``` ## 快速开始 ### Windows 端 ```bash cd win pip install -r requirements.txt python main.py ``` 1. 点击「浏览」选择工作目录 2. 点击「启动服务」 3. 等待安卓设备连接 ### Android 端 1. 使用 Android Studio 打开 `android/` 目录 2. 同步 Gradle 依赖 3. 构建并安装到手机 4. 确保手机和电脑在同一局域网 5. 打开 App,点击「查找设备」 6. 选择服务端并连接 7. 浏览文件或订阅自动同步 ## 项目结构 ``` xmtb/ ├── win/ # Windows 服务端 │ ├── main.py # 入口 │ ├── requirements.txt # 依赖 │ ├── ui/ │ │ └── main_window.py # 主窗口 │ ├── network/ │ │ ├── protocol.py # 通信协议 │ │ ├── discovery.py # 设备发现 │ │ └── server.py # TCP服务器 │ └── core/ │ ├── file_index.py # 文件索引 │ └── file_watcher.py # 文件监控 └── android/ # Android 客户端 ├── app/src/main/ │ ├── java/com/xmtb/app/ │ │ ├── MainActivity.kt │ │ ├── network/ │ │ │ ├── Protocol.kt │ │ │ ├── Discovery.kt │ │ │ └── FileClient.kt │ │ ├── data/ │ │ │ └── SyncManager.kt │ │ └── ui/ │ │ ├── theme/ │ │ └── screens/ │ └── res/ └── build.gradle.kts ``` ## 使用说明 ### 基本文件传输 1. 在 Windows 端选择工作目录并启动服务 2. 在 Android 端连接到 Windows 设备 3. 点击「浏览文件」查看服务器文件列表 4. 点击文件项的「下载」按钮下载单个文件 5. 或使用多选模式批量下载 ### 自动同步 1. 在文件浏览页面点击文件的「设置自动同步」 2. 该文件会被订阅 3. 当 Windows 端文件发生变更时,手机会自动下载最新版本 4. 可在主页查看已订阅的同步文件列表 ### 多选操作 1. 在文件浏览页面点击右上角「多选」按钮 2. 勾选多个文件 3. 点击底部的「下载」或「同步」按钮批量操作 ## 注意事项 - Windows 防火墙可能需要允许 Python 程序接收入站连接 - 手机和电脑需在同一局域网 - 首次使用需授予存储权限 - 建议在 Windows 端开启防火墙白名单 ## 依赖版本 ### Windows 端 - Python >= 3.10 - PySide6 >= 6.5.0 - watchdog >= 3.0.0 ### Android 端 - compileSdk = 34 - minSdk = 24 - Jetpack Compose BOM 2024.02 - Material 3 Expressive ## License MIT