windows系统下 远程控制
2021-06-27 22:07
标签:计算 共享 经验 难点 功能 远程 基于 字节 开放 基于工作需要,最近开发一个远程控制桌面项目。 基本对象:被控制端,控制端,中转服务器结构。 被控制端称为Server提供桌面图像,接受他人远程输入控制。 控制端主要根据被控制端ID发起控制,可远程控制桌面进行常规操作(鼠标,键盘,文件等)。 中转报务器 主要提供每台被控制端的唯一ID(可根据被控制端的硬件标识给出ID),为被控制端和控制端之间通信建立桥梁,根据ID提供给控制端相应的IP和端口,以及登录验证服务。 由于目前大多数的被控制桌面处于路由器之下,没有公网IP,对外只有路由器公网IP。通信准备采用TCP/IP协议。 在通信协议上,可以让被控制端作为SERVER端,也可以作为Clent端。作为Server端需要对外公开IP和端口,主动监听,利用NAT穿透技术,让其可以被其它计算机访问。作为Client端,可以直接访问控制端的IP,要求控制端有公网IP和端口可以使用。 二者各有优点,作为Client端处于路由器之下,不用处理NAT穿透问题,只要能连网就可以被访问,缺点是需要一直主动尝试去连接服务器,不能按需发送联接,有点肉机的感觉。作为SERVER开放端口,需要处理NAT穿透。但是可以按需要被连接,缺点就是需要公开端口,容易被攻击的可能性。 程序设计上,采用C#语言开发,部分调用native api 实现功能,结构上尽量作到数据和界面分隔,事件驱动的模式。 远程控制实现方式,从远程桌面截图,并压缩后发往控制端,序列化之后,以字节流方式实现画面传输。键盘,鼠标控制,采用windows api 模拟实现。文件传输,以剪贴板复制\粘贴实现(如果技术上问题,就直接采用开发上传下载功能)。 可能遇到难点: 1、NAT穿透的具体实现方式 2、在锁定情况下,屏幕的控制 3、利用Windows 服务达到程序自动启动,相关开发没有经验 4、剪贴板实现文件传输,达到剪贴板共享的实现方式 5、图像传输的效率问题 windows系统下 远程控制 标签:计算 共享 经验 难点 功能 远程 基于 字节 开放 原文地址:https://www.cnblogs.com/erist/p/10062276.html