远程软件
背景:公司决定不提供中继服务器,中继方案从「暂缓」变为「排除」。 《多平台架构设计.md》 - §6 从「⚠️ 必须现在拍板」改为「✅ 已裁决」,保留原始分析但标注结论 - 新增 §6.1 裁决内容:不做中继、不预留中继接口、IPv6 一等公民、 连接层边界仍要做 - 新增 §6.2 澄清一件常被混淆的事:**连接层边界 ≠ 中继接口** - 连接层边界(把「怎么连」与「连上干什么」分开):要做,与中继无关, 因为连接方式确定会变(IP→设备码)、安卓端要复用、解码逻辑要可单测 - 中继接口(Path::Relay 这类类型预留):不做。中继已排除,这些变体 永远不会被构造,只会产生 dead_code 警告——零收益的预留就是纯负担 - 新增 §6.3 对产品的影响:明确哪些网络环境连不上,并说明这不是 bug 而是已知边界,UI 必须给出可执行提示 - §10 第 1 条标记为已裁决 《打洞与信令设计.md》 - 状态更新为「已合入 main(703eb64)」 - 补充裁决确认,指向 §6.1/§6.2 补充事实:此前代码中并不存在 PathProvider / Path::Relay,唯一提到 relay 的 signaling.rs:7 是在声明「本协议不含中继」。因此本次是「确认不留」而非 「拆除预留」。 |
||
|---|---|---|
| .cargo | ||
| agent | ||
| agent-core | ||
| common | ||
| linux-agent | ||
| scripts | ||
| tools | ||
| vendor/nvenc | ||
| viewer | ||
| .gitattributes | ||
| .gitignore | ||
| B侧设计文档.md | ||
| Cargo.lock | ||
| Cargo.toml | ||
| Git协作规范.md | ||
| README.md | ||
| 借鉴映射与落地规范.md | ||
| 多平台架构设计.md | ||
| 打洞与信令设计.md | ||
| 打洞验证记录.md | ||
| 构建运行手册.md | ||
mvp-remote
自研远程桌面控制软件(办公场景),技术路线参考网易 UU 远程逆向分析结论。
架构
| Crate | 角色 | 说明 |
|---|---|---|
common |
协议库 | 控制消息 / 视频帧线格式,三端共享契约 |
agent |
被控端 | DXGI 屏幕采集 + openh264(H.264) 编码 + QUIC 服务 + SendInput 键鼠注入 |
viewer |
主控端 | QUIC 客户端 + openh264 解码 + minifb 渲染 + 键鼠采集 + 延迟 HUD |
构建
cargo build --release
产物:target/release/agent.exe(被控端)、viewer.exe(主控端),需附带 3 个 mingw 运行库 DLL(libstdc++-6 / libgcc_s_seh-1 / libwinpthread-1)。
运行
# 被控机
agent.exe --port 47800 --code 123456
# 主控机
viewer.exe --addr <被控机IP> --port 47800 --code 123456
详见《构建运行手册.md》、《Git协作规范.md》与《打洞与信令设计.md》。