第
3
卷第
3
期
2002
年
6
月
空军工程大学学报(自然科学版)
JOURNAL
OF
AIR
FORCE
ENGINEERING
UNIVERSITY
(
NA
TURAL
SCIENCE
EDITION)
计算机远程控制技术及其实现
李彦,卢虎
(1.空军工程大学电讯工程学院,陕西西安
710077
;2.
西北工业大学,陕西西安
710077
)
Vo
1.
3 No.3
Jun.2002
摘
要:介绍了利用
Microsoft
基本类库
(MFC)
实现计算机远程控制的核心技术及其主要功能的实
现方法,给出了
Visual
C
++
6.0
实现的源代码并在
Windows
9x
上调试通过。
关键词
:MFC
j
消息:插口
中国分类号
:TN923
文献标识码
:A
立章编号:
1009
-
3516
(
2002
)
03
-
0087
-
04
随着计算机网络的迅速普及,远程控制做为计算机网络的一项关键技术,也越来越受到重视。不仅大量
的
Hacker
软件采用此技术,而且越来越多的网络、工控、管理等软件也都强调此项功能。实现远程控制的方
法多种多样,本文着重讨论了用
MFC
Ssocket
类实现远程控制通信等问题。
1 MFC
CSocket
类
远程控制软件属于网络编程的范畴,要进行网络编程,首先需要了解插口(
Socket)
的有关概念。插口是
对通信端点进行抽象并提供发送和接收数据机制的一种网络编程接口,包括数据报插口和流式插口。为了
简化基于
Windows
的
Socket
(
WinSock)
网络编程,使用户更专注于应用程序算法的设计,我们使用
Microsoft
基本类库
(MFC)
提供的
Csocket
类。
CSocket
类为
WinSock
API
提供了高级编程接口。
CSocket
类可以和
CSocketFile
类、
CArchive
类-起工
作来处理数据的发送和接收,从而使用户避免手工处理字节顺序、字符串顺序等问题,而且
CSocket
类提供
的阻塞调用功能恰好是使用
CArchive
类进行同步数据传输的最基本要求。
2
用
MFC
Csocket
类实现远程控制通信
远程控制一般是一个控制端对多个被控端的控制。在通信机制上,属于服务器一客户机工作模式。控
制端是客户机,被控端是服务器。程序工作的方式是:控制端向被控端发出连接请求,被控端进行应答,然后
政方开始工作。
2.
1
控制端通信层的编制
远程控制用三个类实现控制端通信层
i
分别是
:CMsg
、
CClientSocket
和
CMyclass
。下面,结合具体代码来
说明这三个类的作用。
1
)建立连接。在编写具体程序代码时,设置了两个全局变量。一个是
CString
类型的数组
m_Handle[2]
,
其中数组成员个数代表被控端个数。这里为了简单只设置了两个元素,每个元素代表一个被控端的标识;另
一个是指向
CMyClass
类的指针数组
m_
Connect[
2]
,每个元素指向一个
CMyClass
对象,代表一个被控端。
在主程序里,当用户发出一个连接被控端的请求后,通过一个有模式对话框,获取被控端的计算机标识,
通常是一个
IP
地址或计算机名。然后,主程序把这个标识在
m_Handle
数组中保存起来。接着,主程序为
m
_Connect
数组中的一个元素分配资源并将程序的框架窗口的指针传递给
CMyClass
类。
例如,连接第一个被控端,则返回计算机的标识被存储在
m_Handle[o]
中,连接代码如下:
收稿日期
:2001
-
09
-
10
f
乍者简介:李
彦(
1963
- )
,男,北京市人,副教授,主要从事信息处理研究-