# RDCT **Repository Path**: davidchen01/rdct ## Basic Information - **Project Name**: RDCT - **Description**: RDCT(RemoteDesktopControlTool) 远程桌面控制工具 基于webrtc实现远程桌面控制,基本原理是利用webrtc使不同内网的处于NAT设备后的计算机能够暴露接口,基于此实现远程桌面连接。 - **Primary Language**: Go - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 4 - **Created**: 2023-06-26 - **Last Updated**: 2023-06-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RDCT(RemoteDesktopControlTool) 远程桌面控制工具 基于webrtc实现远程桌面控制,基本原理是利用webrtc使不同内网的处于NAT设备后的计算机能够暴露接口,基于此实现远程桌面连接。 ## Build ```bash go build -o signal_server.exe ./cmdapp/signal_server/main.go go build -o client_server.exe ./cmdapp/client_server/main.go go build -o client_client.exe ./cmdapp/client_client/main.go go build -o p2ptool.exe -ldflags -H=windowsgui ./uiapp/main.go ``` ## server - webrtc客户端之间信号传输,信号包括打洞信息(candidate)和连接信息(SessionDescription) - 管理连接的客户端,可以查看连接的列表,可以主动踢掉 ## client - 发起webrtc连接 - server-client监听本地端口,通过webrtc数据通道转发 - client-client接收转发数据,发送给本地端口 ## 运行 ```bash go run server.go go run serverclient.go --id=myid123 --port=3389 go run clientclient.go --id=myid123 --port=2222 ``` ## 完成的任务 - server对client信号的转发 - client通过websocket连接server,通过webrtc建立P2P数据传输通道,定时发送测试数据 - client通过p2p datachannel 转发本地连接数据 - 客户端连接顺序忽略 - client的websocket自动重连:不需要重连 - signal server 派发客户端唯一标识符,用户自己指定clientID ## 计划的任务 - 支持多客户端连接同一台主机 - server客户端管理接口 - server 授权