远程控制系统的设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
收稿日期:2003-04-28
作者简介:吴志攀(1975-),男,广东五华人,惠州学院电子系教师,中南大学信息科学与工程学院在读研究生.
第24卷第3期
2004年6月惠州学院学报(自然科学版)Journal of Huizhou University (Nat.Sci.)Vol 1241No 13J un 12004
远程控制系统的设计与实现
吴志攀,赵跃龙,杜华英(中南大学信息科学与工程学院,湖南 长沙
410083)
摘 要 本文用VB 对远程控制系统进行了设计与实现,并对其中每个部分的功能进行了较为详细的说明
关键词 远程控制;Winsock ;VB.
中图分类号:TP393.5 文献标识码:A 文章编号:1671-5934(2004)03-0038-06
1 引言
远程控制系统用处很大,实用性很强,应用范围很广。可以应用在教学方面:教师机控制着学生机,实现远程广播、远程控制、文件共享传送等功能;也可以应用在网吧的计算机管理,对计算机进行监控,用于上机收费等。
2 简易远程控制系统实现思想
2.1本系统所具有的基本功能:
①实现主机远程控制客户机重新注销、重新启动、强行关机。
②实现主机远程撤消客户机的桌面背景等,锁定客户机的键盘、鼠标。
③实现主机与客户机的互发短信、文字聊天。
④实现主机与客户机的文件传输。
⑤实现主机信息广播到各个客户机,远程监视客户机,远程控制客户机。
2.2本系统的实现思想
本系统使用Winsock 进行网络通信。客户/服务器模式兴起于90年代,到了90年代的中期开始成为流行的使用模式,它的出现从总体上讲有以下两个原因:
第一个原因,在客户/服务器模式出现以前,占主导地位的是60年代的集中式大型机模式和80年代的PC/文件服务器模式。它们有很多的缺点:大型机模式实现了高度的集中控制,但是操作不便;而PC/文件服务器模式虽然提供了较好的用户界面,但是却大大提高了体系的整体开销和维护成本。而客户/服务器模式在继承了PC 模式的友好用户界面的基础
之上,又利用分布式的技术提高了执行效率,因而得到了广泛的应用。
第二个原因是从进程通信的角度去分析。在实际中,两个进行通信的进程是不对称的情况是很普遍的。例如远程文件访问,一个无盘工作站访问一个远程的文件系统。工作站上执行的程序和文件系统上执行的程序及其方式是完全不相同的。在这种应用系统中,工作站只是发出一些操作请求,例如打开文件、读数据、写数据和关闭文件。而文件系统负责执行这些操作并把结果送回工作站。这种进程的不对称性也促进了客户/服务器模式的产生。
利用Winsock 控件可以与远程计算机建立连接,并通过用户数据文报协议(UDP )或者传输控制协议(TCP )进行数据交换。这两种协议都可以用来创建客户与服务器应用程序。本系统采用了后者,建立连接有如下几步:
第一步:服务器的Winsock 控件设置本地端口号,并进入监听状态;客户机的Winsock 控件设置远程主机的IP 地址与远程主机的端口号,并进入连接状态。
在服务器的主界面中放置一个Winsock 控件,以便与客户端的Winsock 建立连接。在程序主界面的load ()事件中写入以下两句话:
Winsock1.LocalPort =5000
Winsock1.Listen
第一句是用来指定这个Winsock 控件的本地端口号为5000;第二句是用来指定当前的Winsock 控件为监听状态。此时Winsock 控件打开5000端口号,并且监听网内是否有连接与之相连接。
让客户机上的Winsock 控件的远程主机赋值于手工输入的IP 地址。然后设置Winsock 控件的远程端口号为5000(与前面服务器的本地端口号要相一致)。再令Winsock 控件执行一个C onnect 命令,与服务器的Winsock 控件进行连接。
Winsock1.RemoteHost =Text1.Text
Winsock1.RemotePort =5000
I f Winsock1.State =0Then Form1.Winsock1.C onnect
第二步:服务器的Winsock 控件的C onnectionRequest 的事件接收ID 号。
Private Sub Winsock1-C onnectionRequest (ByVal requestID As Long )
I f Winsock1.State <>0Then Winsock1.Close
Winsock1.Accept requestID
ddid =Str $(requestID )
End Sub
上面的程序是服务器的Winsock 控件接收建立连接后的ID 号。接收了ID 号,说明服务器客户端已经建立了连接。这样,双方就可以互相发送信息了。
第三步:双方都可以用SendData 命令来发送信息了,并且可以在各自的DataArrival 事件中用G etData 命令来接收对方发送来的信息。
服务器中的Winsock 控件的DataArrival 事件:
Private Sub Winsock1-DataArrival (ByVal bytesT otal As Long )
Dim strData As String
Winsock1.G etData strData
Label4.Caption =”来自”+ddid +”消息:”
Text4.Text =strData +vbCrLf +Text4.Text
・93・第3期 惠州学院学报(自然科学版)