You are on page 1of 4

计算机远程监控系统关键技术研究

张宁,于国防,付海燕

(中国矿业大学信电学院,徐州221008)

摘要:针对计算机远程监控系统中需要解决的若干关键问题.设计一个客户/JR务器模式的远

程监控系统。利用套接字和应用程序的伪消息机制.对控制客户端和被控服务器端进行
数据交换.从而达到监控与被监控的目的:利用桌面网格技术大大减少了屏幕数据的传

输量;根据桌面图形图像的特点。提出了霍夫曼(Huffman)算法和行程(RLE)算法,有效
地实现了桌面图形图像的编码和解码。

关键词:远程监控;套接字;消息模拟;桌面网格;Huffman算法;RLE算法

0 引言 获取被控电脑图像的过程.实际上就是服务器端传输
一幅屏幕的图片到客户端的过程.这个过程需要传输
随着计算机网络技术的不断发展.交互式网上教
大量的数据.这涉及到如何对屏幕图片数据进行压缩
学和远程网上监控都已经成为可能。在这些应用中。
(有损或者无损)。另外.什么时候发送屏幕图片数据.
都需要控制远端计算机的键盘和鼠标.同时获得实时
是不是每次都需要发送整个屏幕的数据.这些都是远
流畅的远程屏幕图像,这样就提出了3个问题:如何
程控制必须面对的问题。
实现通过网络与远端机的数据交换:如何利用应用程
利用了套接字和应用程序的伪消息机制.对控制
序的伪消息机制实现消息模拟.如何有效地压缩和传
客户端和被控服务器端进行数据交换.从而达到监控
输远端桌面屏幕。
与被监控的目的。
本文利用了套接字和应用程序的伪消息机制.对
根据这个思想.需要两个独立的程序.服务器端
控制客户端与被控服务器端进行数据交换.根据计算
程序(Server Remote Contr01)和客户端程序(Client
机桌面图像的特点.提出一种基于网格的桌面图形图
Remote Contr01)。如图1所示。
像压缩编码算法。采用客户端朋艮务器模式初步设计
一个计算机远程监控系统。

1 系统架构和设计流程
该系统分为客户端程序和服务器端程序。在使用
前需要将客户端安装到主控端电脑上.将服务器端程

一一一一一一一
一远程控制一
序安装到被控端电脑上。控制的过程一般是先在被控
端电脑上执行服务器端程序.然后在控制端电脑上执 一服务器一一客户端一
图1系统架构
行客户端程序.与服务器端程序建立一个特殊的远程 现
服务.然后通过这个远程服务.使用各种远程控制功 服务器端所需要的模块如下: 代
能发送远程控制命令.控制服务器中的各种应用程序 ●网络模块:负责监听客户端的连接,负责接收 计
的运行。通过远程控制软件,可以进行很多方面的远 并处理客户端发送过来的命令(鼠标、键盘、网格消息 算

程操作,包括获取目标电脑屏幕图像.记录并提取远 等命令).在本机上处理这些消息并发送各种数据(屏 ^

端键盘事件、鼠标事件,对文件的操作等。网速瓶颈是 幕数据、命令反馈数据等)到客户端监听程序; 总
很多网络程序必须考虑的问题.远程控制也不例外。 第
●编码模块:负责对屏幕图像数据进行压缩编码。

收稿13期:2007—08—20修稿日期:2007—11—08 七
__

作者简介:张宁(1981一),男,江苏徐州人。硕士研究生,研究方向为计算机网络与通信

MODERN COMPUTER
61 2007.11

万方数据


、 、n^— — — — — — — — —J‘LJ_u n_ _。,_ ^1n_r-— — — — — — — — — —- —_一—
具体的编码方法是由客户端决定(客户端发送的通用
命令消息、压缩方法消息、网格消息、颜色模式消息)。
压缩选项包括了霍夫曼压缩、行程编码、行程一霍夫曼
编码以及不压缩等:
实践与经验

理客户端发送过来的消息.并在本机上执行相关命令
(鼠标、键盘、文件等).然后将当前改变的区域的屏幕
显示内容发送到客户端。
而当客户端连接到服务器端之后.客户端程序就
可以根据服务器端传过来的屏幕数据在本地机上显
●主框架模块:负责Server端窗口消息处理和映
示出屏幕内容,从而做出各种鼠标、键盘操作,以及一
射。
些通用信息的更新(压缩模式选择、网格数目等),这
客户端所需要的模块如下:
些操作命令将被编码.然后传递到服务器端.服务器
●网络模块:负责连接服务器端的监听端口:负
端再根据这些命令做出相应的操作。
责向服务器发送各种操作命令(鼠标、键盘、各种通用
参数消息等命令);负责接收服务器端数据(屏幕数据、 2关键技术的具体实现
命令反馈数据等).并对这些数据进行解压缩解码.然
2.1消息模拟技术
后将其中的图像数据(屏幕内容)显示在本机上; 在一般的应用程序中.用户敲击键盘或者单击鼠
●解码模块:负责对数据进行解压缩解码。这个 标的消息都是首先被外设的驱动程序所截获.然后外
模块根据用户在“数据压缩”对话框中的选择从而决 没将这些消息加入系统的消息队列.这样应用程序就
定客户端的解码方法。压缩选项包括霍夫曼压缩、行 可以从窗口消息队列中得到该消息并进行相应的处
程编码、行程一霍夫曼编码以及不压缩等: 理。但对于某些应用程序.它无法提供外设的输入.所
●主框架模块:负责Client端窗口消息处理和映 以需要自己模拟这些外设消息并将其直接发送到系统
射: 的消息队列中去。这样的技术被称为消息模拟。对于远
●各种对话框模块:编码解码选择对话框、网格 程控制来说.客户端程序可以随意操作服务器.也就意
数目选择对话框。 味着服务器端程序必须模拟客户端的鼠标、键盘消息。
远程监控程序的工作流程如下图2所示下: 相关消息模拟函数的功能与作用介绍如下。

(1)keybd_event
服务器端 客户端
VOID keybd_event(
在指定端口上成serversocket 根据server端IP和端口 BYTE bVk, //virtual—key code
号生成一个socket BYTE //hardware code
bScan, scan

DWORD dwF|ags, //flags specifying various func—


监听(1isten)客户端的清
tion options

向server端监听端口 DWORD dwExtralnfo//additional data associated with


用accept()接收cllent端
请求并生成会话socket 送connect()请求 keystroke

);

建立输入输出流,通过会 建立输人输出流.通过向 bVk:<输入>定义了一个虚键码.它的范围是1。254。


话socket与客户端通信, 会话socket读写信息实 bScm:保留。
执行相关命令(鼠标、键 现与server端的通信.发 dwFlags:<输入>定义函数操作的类型。按下或者弹起。
盘、文件等),并将当前 送相关命令.根据server dwExtralnfo:<输入>定义了击键的额外的关联值。
改变区域的屏幕内容发送
端传来的屏幕数据在本
¥1]cl ient端 (2)mouse_event
机上显示屏幕内容.
VOID mouse_event(
现 DWORD dwFlags,//flags motion/
关闭会话socket 夫刚socket,结 specifying various
代 结束与当前用户的通信 server端的通信 click variants
计 DWORD dx, //horizontal mOUSe position or
posi—
算 听
tion change

^ DWORD dy, //vertical mouse position or
position
图2远程监控程序的工作流程
总 change
第 首先在一台机器上启动服务器端程序并开启监 DWORD dwData,//amount of wheel movement

二 DWORD dwExtralnfo
听端口.接着在另一台机器上启动客户端程序并让其
七 ||32 bits of application-defined information
_●
连接服务器端口.之后服务器端开启一个与客户端通
);
信的会话socket。这个会话socket专门负责接收和处

jll0DERN COMPUTER 2007.11


62
万方数据
dwFlags:<输入>定义各种鼠标移动和单击的标志。 P帧给客户端.但服务器在第一次响应Refresh请求
dx:<输入>定义鼠标沿着x轴的绝对位置。 时.发送的帧实际上是一个I帧。在具体实现时,对于
Jy:<输入>定义鼠标沿着Y轴的绝对位置。 I帧中的网格图像数据可采用直接获取并传送其原始
dwData:<输入>如果dwFlags包括了
的图像数据:而P帧中的网格数据则是对应网格中新
MOUSEEVENTF WHEEL的标志.则dwData定义鼠标滚轮
屏幕数据减去旧屏幕数据的差值.即P帧中的网格图
的运动的数量。正值表示滚轮向前旋转:负值表示滚轮向后
像数据实际是对应网格的“差图”。
旋转(朝向用户)。滚轮被按下的标志是WHEEL DELTA。

dwExtralnfo:<输入>定义与鼠标事件关联的额外信息。应 I帧采用Huffman算法压缩.P帧采用RLE(Run
用程序可以调用GetMessageExtraInfo获得这些额外的信息。 LengthEncoding)算法压缩。
在计算机桌面屏幕上.经常存在有大量的块状和
2.2远端桌面屏幕的有效压缩与传输
条形区域.它们具有相同的背景颜色.在网格图像数
在远程控制中.需要将计算机屏幕实时地进行传
据中它们占据了绝大多数.可见对I帧采用Huffman
输.这就提出了一个如何有效压缩和传输桌面图形图
压缩较合适。由于每个像素的彩色数据由3Bytes组
像的问题。由于计算机桌面是一类特殊的图形图像.
成.即使相邻的两个像素颜色一样.在对应的6Bytes
它们有其自身的特点:
彩色数据中.相邻字节的值不一定相同.只是相隔
①它们的变化是非连续性的.这样屏幕抓取的频
2Bytes肯定相同。若采用RLE压缩,可能适得其反.
率每秒1-4帧即可:
造成压缩后的数据量反而会增大。
②在计算机桌面屏幕上.存在有较多的块状和条
对于P帧.由于网格中的数据实际是对应网格
形区域.它们往往具有相同的背景颜色:
的“差图”.如果网格内部有变化的屏幕内容不多.则
③数据压缩方式应采用无损压缩.否则在解压时
“差图”中必然有大量的零。对于这样的网格数据.
会造成较大的误差扩散:
Huffman算法的压缩速度和压缩率都比不上RLE算
④桌面图形图像序列的传输具有脉冲性.在两次
法。所以.对P帧采用RLE算法进行压缩。
图形图像数据传输之间网络存在一段空闲时间。
根据计算机图形图像序列的以上特点.我们提出 3结语
一种基于桌面网格的无损编码算法。
计算机远程监控技术充分利用了现有资源.拓宽
(1)桌面图形图像数据采用桌面网格化传送
了互联网的利用范围,并进入一般应用的领域。在各
如果每次都将服务器的全屏数据传向客户端.则
个领域中都有广泛应用,拥有广阔的发展前景。
会严重地影响服务器的正常工作。例如.一个典型的
Windows显示配置为1024×768.颜色数为24位真彩
参考文献
色.则一整幅屏幕的数据量为:1024 x768 x24=
f11谭日鑫.WindoW界面图形压缩及传输.中央民族人学学
18.9Mbit。这不但要占用大量的网络带宽.同时也将影
报,2001,9(2):144~148
响Windows系统对其他正常任务的处理与响应。为了 『21董祖雄,谢捷生.远程屏幕传输及其数据压缩的实现方
减少屏幕更新时的数据传输量.可采取网格化的方 案.微型机与应用.2001,(10):54。56
法.把桌面屏幕划分成若干个规则的大小相同的网格 『31李满.远程控制系统的软件设计.佳木斯大学学报,2004
fGrid).屏幕数据的传输以网格为单位。 (3):34-37
客户端每次提出Refresh请求时.服务器只向客 『41范石芝,陈树平.利用Socket实现基于Web的远程监测

户端传送其屏幕上发生变化的网格图像数据。由于桌 系统.陕西工学院学报,2005 f3):53.55

面屏幕的抓取与传送是一个连续的过程.通常在一个 『51马喜春,张曾科.基于Socket进行通用的网络通信程序

较短的时问间隔内屏幕上往往只有局部发生变化.甚 设计.试验技术与管理.2005(3):58~61

『6]朱蓉.利用中间件Socket实现多客机端底层网络通信. 计
至不变化。因此.每次只要把屏幕上有变化的网格发
计算机系统应用.2005(61:17~21 算
送给客户端就完全可以了.而如果整个屏幕没有变
『71郑昌波,秦前清等.计算机远程控制技术研究及实践.计 机
化.服务器就不用向客户端发送屏幕数据。这样就大 ^
算机工程与设计.2005(6):1636.1638
大地减少了屏幕数据的传输量。 总
『81罗红,慕德俊.桌面图形图像序列压缩与传输研究.计算
(2)对于桌面图形图像数据编码算法的设想 机应用.2005,(9):1299~1303

将整个屏幕上所有网格组成的帧称作I帧.将仅 二
『9]刘瑞新.Visual C++面向对象程序设计教程.北京:机械
含有屏幕上变化区域的网格组成的帧称作P帧。可 工业出版社.2004

-_

见.每当客户端发出Refesh请求时.服务器都将发送 (下转第78页)

63 MODERN COM PUTER 2007.1l

万方数据
这样,对于一些通过猜的方式得到Access数据库文 果使用ODBC数据源.就不会存在这样的问题了。
件名的非法访问方法.可起到了有效的阻止作用。 conn.open“ODBC—DSN名”对ASP页面进行加密。为
5.2使用oDBC数据源 有效地防止ASP源代码泄露.可以对ASP页面进行
在ASP程序设计中,应尽量使用ODBC数据源. 加密。一般有两种方法对ASP页面进行加密。一种是
不要把数据库名直接写在程序中.否则.数据库名将 使用组件技术将编程。逻辑封装入DLL之中:另一种
随ASP源代码的失密而一同失密。例如: 是使用微软的Script Encoder对ASP页面进行加密。
DBPath=Server.MapPath("./akkjj 16t/
kjhgb661/acd/avccx55/faql9jhsvzbal.mdb”) 参考文献

conn.Open“driver=[Microsoft Access Driver(+.mdb)}; 【1]精英.ASP核心技术.北京:中国电力出版社,2001


dbq=”&DBPath 【21宣小平,但正刚,张文毅.ASP数据库系统开发.北京:人民
邮电出版社.2003
可见,即使数据库名字起得再怪异.隐藏的目录
【3】萨师煊,王珊.数据库系统概论.北京:高等教育出版社,
再深,ASP源代码失密后,数据库也很容易被下载。如
200()

Discussion on the Security of ASP+Access

SHI Li——qiong

(The First People’S Hospital of Zhaoqing,Zhaoqing 526021)

Abstract:The technology of ActiveX in ASP is based on the open design environment,SO the user can

set up or create serf-module in ASP,and makes the dynamic website page have a unlimited

expanding ability though it may be result in the un-safety of network.There is dangerous


for network security,SO it's necessary to improve the security of ASP+Access.

Keywords:Access Database;ASP;Security Leak;ODBC Data Source

(上接第63页)

Research
Key Technologies on

of Computer Remote Monitoring System

ZHANG Ning YU Guo-fang FU Hai—yan


现 , ,


计 (College of Information and Electronic Engineering,China University of Mining and Technology,Xuzhou 221008)


Abstract:According to some key questions in computer remote control,designs a C/S system on corn—

^ puter remote monitoring system.Makes use of socket and puppet-message mechanism of
总 application,changes the dates between client and server,reachs the aim of control and be—

第 controlled;Makes use of desktop-grid to reduce the quantity of transmission;Based on the

二 characteristic of desktop,puts forward Hnffman—algorithm and RLE—algorithm.effective ac—

tualize the coding and decode of the graphics and image of desktop.

_-
Keywords:Remote Control;Socket;Message Simulation;Desktop Grid;Huffman—Algorithm;
RLE—Arithmetic

MODERN COMPUTER 2007.11


78
万方数据

You might also like