# LAN_share **Repository Path**: kxaltraman/lan_share ## Basic Information - **Project Name**: LAN_share - **Description**: LAN_share:一个专注于局域网资源共享的开源项目,提供文件传输等便捷功能,旨在简化局域网内的协作与管理。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2026-04-04 - **Last Updated**: 2026-04-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # LAN Share(局域网文件分享) 基于 **Godot 4.6** 的局域网文件/文件夹收发工具,同一 Wi‑Fi 下设备可互相发现并传输,无需中心化服务器。 ## 当前版本 **1.1.0** ## 功能概览 ### 设备发现 **UDP 广播**,列出附近已打开本应用的设备与本机信息。 ### 发送 可选 **单个文件** 或 **整个文件夹**;支持自定义 **显示名**(本机在局域网中的标识)。 ### 接收 后台 **TCP 监听**;默认保存至应用数据目录下的 `received`,可 **自定义接收根目录**。 ### 跨端 面向 **移动端** 优化布局;**手机与平板** 上随重力感应在 **横屏 / 竖屏** 间自动切换(`SCREEN_SENSOR`)。桌面端可用;Android 对分区存储下的目录枚举做了补全,便于发送文件夹内文件。 --- ## 界面与操作说明 ### 布局说明 主界面自上而下为 **顶部栏**、**附近的设备**、**发送与接收操作区**、**日志**。 视口 **宽高比小于约 3:4**(偏竖长)时,设备区与操作区会改为 **上下单列**;较宽时可在同一行并排显示。旋转设备后布局会随新的视口尺寸重新计算。 ### 顶部栏(本机) - **显示名**:在局域网里展示给其他设备的名称(选填)。编辑后点 **应用** 生效;点 **自动** 恢复为系统推断的默认名称。 - 其下方为 **本机** 信息(显示名与局域网 IP 等),便于核对当前身份与网络。 ### 附近的设备 - 列表自动列出当前网段内已运行本应用且可被发现的设备;可点 **广播并刷新** 立即再发发现广播并更新列表。 - **点选一行** 即选中要接收文件的设备;发送前 **必须选中一台设备**。 - 在设备行上 **短按** 为选中;明显滑动时视为滚动列表,避免误触。 ### 选择要发送的内容 - **选择文件**:挑选 **单个文件**(系统文件选择器或内置选择器,依平台而定)。选中后下方会显示路径,并出现 **发送文件名** 输入框:可改对方保存时使用的文件名(留空则按路径自动推断);部分系统 URI 与资源管理器显示不一致时建议核对。 - **选择文件夹**:挑选 **整个文件夹**,将按目录结构发送其中所有可读文件;此模式下不显示「发送文件名」行(以文件夹名为接收端目录名,参见下文 **协议 v2**)。 ### 接收保存位置(本机作为接收方时) - **接收位置…**:指定接收文件写入的 **根目录**(持久保存);下方标签会显示当前路径或默认说明。 - **默认**:清除自定义根目录,改回应用默认位置(通常为应用数据目录下的 `received`)。 - **打开目录**:用系统文件管理器打开当前接收根目录(部分 Android 私有目录可能无法在系统「文件」中直接浏览,界面会提示)。 ### 发送与进度 - 选好设备与文件/文件夹后,点 **发送到所选设备** 开始传输;进行中底部会出现 **发送进度** 条与当前文件名提示。 - 主界面下方的 **日志区域** 会滚动显示发现、连接、接收路径、错误等信息,便于排查防火墙或网络问题。 --- ## 环境要求 - [Godot 4.6](https://godotengine.org/)(与 `project.godot` 中 `config/features` 一致) - 发送方与接收方在 **同一局域网**,且防火墙放行: - **TCP `41731`**(文件传输) - **UDP `41730`**(设备发现;若被拦截则列表为空) ## 从源码运行 1. 用 Godot 4.6 打开本项目目录。 2. 运行主场景 `scenes/main.tscn`(已在项目中配置为启动场景)。 ## 导出 在编辑器中配置 **导出预设**(`export_presets.cfg` 可作为参考),按需导出 Android / Windows 等目标平台。导出产物目录 `export/` 已加入 `.gitignore`,请本地自行构建。 ## 协议说明(简述) - **发现**:魔数 `LSH1` + 协议版本字节 + 主机显示名等(见 `scripts/autoload/discovery_service.gd`)。 - **传输**:TCP 上魔数、版本校验后,按文件依次发送路径(UTF‑8)、大小与分块数据(见 `transfer_client.gd` / `transfer_server.gd`)。 - **v2**:发送文件夹时相对路径带根文件夹名,接收端在接收根下创建 **与发送文件夹同名** 的目录(与仅支持 v1 的旧端仍兼容)。 ## 仓库 - Gitee: ## 许可证 若未另行声明,以仓库内许可证文件为准;暂无 `LICENSE` 文件时请自行补充。