windows系统下 远程控制

基于工作需要,最近开发一个远程控制桌面项目。

基本对象:被控制端,控制端,中转服务器结构。

被控制端称为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、图像传输的效率问题

转载于:https://www.cnblogs.com/erist/p/10062276.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值