# T-AND-006 连接页 + 主机发现 - **状态**: done - **依赖**: T-AND-005 ## 目标 让用户快速找到并连上 Windows 客户端,无需手输 IP。 ## load ``` DSH.md app/src/main/java/com/opendance/studio/ui/ConnectScreen.kt app/src/main/java/com/opendance/studio/net/HostDiscovery.kt ``` ## 交付物 - `ui/ConnectScreen.kt`:地址输入、扫描、测试连接、推流参数 - `net/HostDiscovery.kt`:局域网扫描 ## 主机发现策略 Windows 客户端是**裸 WebSocket 服务端**(不是 HTTP 服务),无法靠扫描 HTTP 端点发现。因此: 1. 取手机在 WiFi 网的 IPv4 地址(排除 `rmnet*` 蜂窝网卡与 `169.254.*` 链路本地地址) 2. 推导 `/24` 网段 3. 并发 TCP 探测 `<局域网网段>.1-254:8765`(并发 32、单机超时 300ms) 4. 以 `Flow` 形式边扫边产出,按延迟升序展示--最快响应的最可能是目标机 整段扫描约 2~3 秒。 ## 可配置项 | 项 | 说明 | |--|--| | IP / 端口 | 默认 8765,与契约一致 | | 分辨率 | 480x360 / 640x480 / 1280x720 | | 目标帧率 | 写入 hello 的 targetFps | | 镜像画面 | 写入 flags.bit0 | | 仅上半身模式 | 写入 flags.bit2 | ## 验收 `assembleDebug` 通过;连接页可编辑参数并持久化(SharedPreferences)。