Professional Documents
Culture Documents
""( 年
基于 !"#$%&’ 通信的远程屏幕抓取方法与实现 !
朱东辉
( 湘潭大学 信息工程学院,湖南 湘潭 #&&&"()
!"#$%&’$:>.35O33<3 LU1O= T12 =1 S<= L/0 0.3K;LM =T< C<J1=< J1/.=1C ./V1CJL=.1/ 1/ ;15L=.1/ 51JKO=<CW R3./S =T< -./4156
L/0 789 KC1SCLJJ./S =<5T/1;1SM,.= 5L/ C<L;.X< =T< 9;.</= L/0 4<CD<C =1 51JJO/.5L=< =T< 0L=L UL3<0 1/ @ABW
()* +,%-#:I<J1=< 91/=C1;;-./4156;45C<</ 9LK=OC< L/0 ECL/3J.33.1/
, , 远程控制软件的使用已经有许多年了,当初是为了让 A9 除此之外,基于远程服务的远程控制最适合的模式是一对
用户在离开办公室的时候能访问其台式 A9 硬盘中的信息,甚 多,即利用远程控制软件,我们可以使用一台电脑控制多台电
至可通过其台式 A9 访问企业网络资源。近年来,随着 A9 的 脑,这就使得我们不必为办公室的每一台电脑都安装一个调制
广泛应用和网络的不断发展,网络技术已经成为计算机领域内 解调器,而只需要利用办公室局域网的优势就可以轻松实现远
一个最为热门的发展方向。目前,许多企业和增值分销商正把 程多点控制了。在进行一台电脑对多台远端电脑进行控制时,
远程控制能力作为有效的技术支持工具,很多网络管理员都采 不难发现,远程控制软件似乎更像一个局域网的网络管理员,
用这类软件对局域网进行管理或在家更新自己网站中的内容。 而提供远程控制的远程终端服务就像办公室局域网的延伸。
对于远程控制的定义有很多种,一般认为,远程控制指管 这种一对多的连接方式在节省了调制解调器的同时,还使得网
理人员在异地通过计算机网络,连接目标计算机,通过本地计 络的接入更加安全可靠,网络管理员也更易于管理局域网上的
算机对远程计算机进行管理和维护的行为。而远程控制软件 每一台电脑。
实际上是一种客户机 : 服务器程序,服务器程序安装在被控制
的计算机端,客户程序安装在控制端。在客户端和服务器端都
! , 系统设计
安装成功之后,客户端在网络上搜索已经安装了服务器的远程 编写一个远程控制程序,可以通过网络控制网络中的某台
计算机,然后客户端就发送指令获得服务器端的连接指令,两 计算机,可以对它进行启动和停止操作,使之随时可以形成上
台 A9 建立了连接,就可以通过网络的互连协议 E9A : BA 进行 下位机的控制与管理模式,并可对其硬件进行控制。一个完整
远程控制。当操作者使用主控端电脑控制被控端电脑时,就如 的远程控制系统由硬件部分、软件部分和具体连接部分组成。
同坐在被控端电脑的屏幕前一样,可以启动被控端电脑的应用
!G !, 系统结构设计
程序,可以使用被控端电脑的文件资料,甚至可以利用被控端
整个工程可以分为两部分,分别编译可执行文件。其中一
电脑的外部打印设备( 打印机)和通信设备( 调制解调器或者
个为服务器程序,也就是监控程序,潜入服务端内部,获取其操
专线等)来进行打印和访问互联网。不过,这里所涉及到的只
作权限,采集系统信息,并打开服务端某一默认端口进行监听,
是主控端电脑将键盘和鼠标的指令传送给远程电脑,同时将被
等待控制端的命令,并作出相应的反应。另一个是控制端程
控端电脑的屏幕画面通过通信线路回传过来。也就是说,我们
序,负责发送控制码控制服务器。系统体系结构如图 & 所示。
控制被控端电脑进行操作似乎是在眼前的电脑上进行的,实质
是在远程的电脑中实现的,不论打开文件,还是上网浏览、下
载,所有的资料都是存储在远程的被控端电脑中的。
当客户端以系统管理员身份进入服务器计算机,异地控制 对象的创建、连接等一系列工作。代码如下:
Q Q 建立连接
服务器计算机,可以像对本地计算机一样对其进行操作。远程
=RRS $H#F@478IFG::$0774#8C0#D48( $38@7G 38&FT)
模拟鼠标及键盘输入,运行服务器计算机上的可执行程序,修 {Q Q 创建客户插口
改其系统设置,控制其硬件设备。控制端发送鼠标动作( /012 . J2T$3D8$F@478 274N $3D8$F@478( 8%@3);
. @A( !J2T$3D8$F@478 2 P $&4!84( ))
3456478( )函数)或键盘输入抓取屏幕的命令给服务端,服务端 . {Q Q 错误处理
接收后响应其命令,
返回响应结果信息给控制端,抓屏后,将位 . . ;4F48 J2T$3D8$F@478;
图文件传给控制端。要实现此功能,只需在被控方计算机软件 . . J2T$3D8$F@478 M UVSS;
. . <AW/433!G4=0W( X 插口创建失败X );
中使用 /013456478 和 94:";56478 函数就可以。当远程控制端 . . Y481&7 B<SC5;
计算机发布键盘、
鼠标命令时,
被控方计算机就调用 /013456478 } Q Q 发送连接请求
. . N%@F4( !J2T$3D8$F@478 2 P $0774#8( 38&FT,
*)Z)))
和 94:";5647 函数,可以发出相应的键盘、鼠标的模拟动作。
. . {Q Q 无法连接被控端
!- "- !. 系统工作过程 . . . @A( <AW/433!G4=0W( X 无法连接服务器 [ 7 重试?X ,/=2\5C2
本远程控制系统的工作大致分为以下五步:配置监控程 UR)—>IUR)
. . . {Q Q 错误处理
序、运行监控程序、信息反馈、建立连接和远程控制。在系统 . . . . ;4F4F84 J2T$3D8$F@478;
中,监控程序连接的建立,首先必须满足两个条件:一是服务端 . . . . J2T$3D8$F@478 M UVSS;
已安装了监控程序程序;二是控制端、服务端都要在线。在此 . . . . &481&7 B<SC5;
. . . . }
基础上控制端可以通过监控程序端口与服务端建立连接,其示 . . . } Q Q 创建 $30#D48 B@F4 对象
意如图 ’。 . . . J2TB@F4 M 74N $<&#%@64( J2TB@F4,$!&#%@64::F0!;);
. . . J2T<&#%@64R18 M 74N $!&#%@64( J2TB@F4,$!&#%@64::380&4);
. . . &481&7 OYV5;
}
(’)数据收发过程。数据的接收是由插口来自动完成的。
当数据到达控制端的缓冲区后,系统将自动调用 $3D8$F@478 类
的 $H#F@478IFG( )回调函数。此 R7&4#4@64( )函数并不进行数
如图 ’ 所示 < 机为控制端,= 机为服务端,当 < 机与 = 机 据的接收工作,而是通过调用 $H#F@478IFG 类的成员函数 $H#F@2
建立连接后,控制端只要搜索这个 >? 地址段就可以找到 = 机 478IFG::$H#F@478IFG( )来完成数据接收。以上是数据接收的
了。远程控制是在连接建立后,控制端端口和服务端口之间将 过程,数据发送比较简单,只需在主程序中直接调用 $H#F@4782
端上的服务端程序取得联系,并通过监控程序对服务端进行远 (*)被控端通信层的编制。被控端是控制通信层的另一
+839:;<=>?538@ 则会因为故障节点位置不同而表现变化较大。 WU FDG +;PM9 DF ’G;<;)P5X:8)J;= ,;@DH;G> WM??;:)[ R]S B?P;G?;P &G5FP,
EDH( !"""S
[0] Y R53DM))8( ID?)PG58?P<X5);= *+’ +;PM9 %)8?K *&’[ R ]S B?P;G?;P
&G5FP,Z@P( #///S
[A] +5?PD) [M35G &5),’ N;?65P5G53( O 4;PJD= DF &;)8K?8?K 5 ’5PJ ,;)<
PDG5P8D? +@J;3; FDG 49:) Y5);= E;PQDG6[ R]S BUUU,!""!S
[-] +@DPP ’DG;P)6>,,5\;)J [J5??5,, ’59?;\5,!" #$( Y;?@J( 35G68?K
4;PJD=D:DK> FDG 4’*+ ’GDP;@P8D? 4;@J5?8)3)[ R]S B?P;G?;P &G5FP,O<
9G8: !""AS
[7] ] OJ?,^ IJM?( +83M:5PDG FDG 4’*+ ’5PJ ,;)PDG5P8D? 5?= ’;GFDG<
在时延上,三种方案都不会有较大的变化,最大、最小和平
35?@; UH5:M5P8D?[ R]S BUUU,!""#S
均时延差别都很小。4& 方案在故障点接近 ’B* 时,时延基本
[.] O +G868P\5,& W899;G,& 4;=J8( Z? ’GDH8=8?K +MGH8H5X:; +;GH8@;) 8?
和 45653 方案相当。
PJ; E;VP ];?;G5P8D? B?P;G?;P[ I]( WJ; BUUU 48:8P5G> ID33M?8@5P8D?)
恢复时间,三种方案的表现与理论分析符合,4& 方案是 ID?F( 48:@D3’
//),OP:5?P8@,ER,
#///S
前两种方案恢复时间的较小者。如图 - 所示,恢复时间主要受 [$] U3G; _;PK8?;G,U‘J5? [5G5)5?( ,DXM)P ’5PJ &;)8K? O:KDG8PJ3) FDG
到故障节点位置的影响,总体表现与丢包数对比图类似,说明 WG5FF8@ U?K8?;;G8?K Q8PJ ,;)PDG5P8D? 8? 4’*+ E;PQDG6)[ I ]S BUUU
丢包数大小主要是由故障恢复时间大小所决定的。 ( B+II’
"!),!""!S
作者简介:
. 1 结论
康剑(#/$"< ),男,硕士研究生,主要研究方向为智能网络管理及网络
本文提出了 4’*+ 网络故障恢复的一种新的算法 4& 方 路由优化;曹阳(#/A0< ),男,教授,博士生导师,研究方向为高速网络
案,并通过理 论 分 析 和 仿 真 实 验 对 4& 方 案、45653 方 案 及 协议、智能网管、网络安全与性能 评 价、+ZI 软 2 硬 件 协 同 设 计;葛 非
+839:;<=>?538@ 方案的时延、丢包等进行了分析对比。4& 方 (#/.-< ),男,博士研究生,主要研究领域为网络流量行为及预测;王悦
案兼具了 45653 和 +839:;<=>?538@ 方案的优点,对丢包,可靠 伟(#/.$< ),男,硕士研究生,主要研究方向为智能网络管理。
待改进。 作者简介:
参考文献: 朱东辉(#/77< ),女,湖南邵阳人,中级职称,本科,研究方向为计算机
万方数据
[#] 王罡,林立志 S 基于 ^8?=DQ) 的 WI’ 2 B’ 编程[ 4]S 北京:清华大 网络控制等。