一、背景
现实中有很多的工具可以实现远程登录和屏幕控制。
例如 向日葵、SSH等等。
二、本文目的
简单探讨实现共享屏幕和远程网络控制的思路。
三、主要思路
(一)画面分享
思路:用截图和远程主机画图来实现。
具体:
1、共享方不断循环定时截图,通过网络发送给受益方。
2、受益方在图形窗口中画出截图照片,并且定时更新截图。
3、发送的协议格式:
1字节类别(关闭、数据两种类别)
8字节毫秒数时间戳
2字节数据长度
指定长度的截取图片数据或者关闭信息
1字节间隔符
(二)远程图形控制
1、图形化界面控制,用网络传递鼠标和键盘动作。
2、控制协议格式:
1字节类别(区分鼠标和键盘)
1字节事件类别(区分左击,中击,右击)
2字节事件参数(键码)
2字节事件x坐标
2字节事件y坐标
3、事件种类
单一鼠标事件:左击,右击,双击。
单一键盘事件:例如按住某个键,同时按住多个键,松开某个键。
4、思路
受控方循环监听主控方发来的网络命令,调用Robot类的事件方法执行事件。
同时需要投屏支持,给主控方反馈画面才能远程控制。
当进入控制窗口后像操作本地电脑一样操作远程电脑。
(三)远程命令登录思路
1、双方建立TCP连接。
2、开始身份验证。
3、验证通过进入下一步,否则失败退出。
4、主控方给受控方发送命令字符。
5、受控方读取命令,调用子程序来执行命令。
6、受控方及时读取子进程的执行反馈信息。
7、受控方把反馈信息发送给主控方。
8、主控方读取反馈信息后打印在命令行窗口里。