远程监控系统的实现主要采用了套接字这项技术和虚拟鼠标键盘消息的API,在大多数情况下套接字是底层传输代码的必选技术。Socket可以看成在两个程序进行通讯连接中的一个端点,一个程序将一段信息写入Socket中,该Socket将这段信息发送给另外一个Socket中,使这段信息能传送到其他程序中。该程序采用TCP协议,因为流控和差控的存在使得传输更具有稳定性。UDP虽然效率更高,但是有掉包的情况出现,这是本方案所不允许的。
通过SOCKET传递的虚拟消息结构体到对端,被对端主机解释并虚拟,最终达到程序目的。
毕业设计任务内容:
基于Windows的远程控制软件开发毕业设计的主要任务是要求做出从系统角度
计的远程控制模式,并制作相应实用软件。
采用服务器(Server),客户端(Client)模式,使用Socket编程的基本原理及Windows的消息系统。实现基本的远程控制要求,界面新颖友好。用VC开发!
要求:
1).远程控制模式架构,如基于主从模式;
2).远程控制功能实现,如开关机,远程监视;
3).远程控制安全考虑;
4).远程控制实现平台与技巧;
5).远程控制软件实现,要求至少能在两台电脑上正常运行;
6).界面新颖友好。
毕业设计服务器端实现原理
远程监控的思想是通过SOCKET和利用应用程序的消息机制,监控程序的客服端与被监控程序的服务器端进行数据交换,达到监控与被监控的目的。
根据这个思想,需要两个独立的程序,SERVER REMOTE CONTROL和
CLIENT REMOTE CONTROL。
Server remote control所需要的模块如下。
网络模块:负责监听客服端的连接,负责接收并处理客服端发过来的消息命令,在本机上处理这些消息并发送各种数据,如屏幕数据,命令反馈数据等,到客服端监听程序。
编码解码模块:负责对数据进行哈夫曼压缩。这个模块是根据客户端的要求来采用具体的编码解码方法的。
主框架模块:负责SERVER端窗口的消息处理
客服端实现原理
3.7.2 客服端实现原理
网络模块:负责连接到服务器的监听SOCKET;负责向服务器发送各种操作命令,如鼠标,键盘,各种参数消息等命令。
主框架模块:负责CLIENT的窗口消息处理
3.7.3 数据流实现原理
首先启动Sever Remote Control的程序,开启监听端口,将CLIENT REMOTE CONTROL 连接到服务器的端口,之后SERVER开启一个与客服端通信的线程
这个线程专门负责接收和处理客服端发送过来的消息,并在本机上执行相关命令。然后将当前改变区域的屏幕的内容发送到客服端。
而当客服端连接到服务器端之后,客服端程序就可以根据服务器端传过来的屏幕数据在本地机上显示出屏幕内容,从而作出各种鼠标,键盘操作,以及一些通用的更新。这些操作会通过SOCKET传给服务器端。服务器端再根据这些消息做出相应的操作。
需要注意的是,服务器端刷屏的时候并不是将整个屏幕都传给客服端,因为整个屏幕图片的数据量比较大,当前网络负载也不是很稳定的条件下,该程序是很不稳定的。一个可行的办法是将屏幕的划分成网格块,屏幕的刷新是以网格为单位的,只需要将这些变化的屏幕数据发送给客服端即可。