收稿日期:2003-04-28作者简介:吴志攀(1975-),男,广东五华人,惠州学院电子系教师,中南大学信息科学与工程学院在读研究生.第24卷第3期2004年6月惠州学院学报(自然科学版)JournalofHuizhouUniversity(Nat.Sci.)Vol1241No13Jun12004
远程控制系统的设计与实现
吴志攀,赵跃龙,杜华英(中南大学信息科学与工程学院,湖南 长沙
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=5000Winsock1.Listen第一句是用来指定这个Winsock控件的本地端口号为5000;第二句是用来指定当前的Winsock控件为监听状态。此时Winsock控件打开5000端口号,并且监听网内是否有连接与之相连接。让客户机上的Winsock控件的远程主机赋值于手工输入的IP地址。然后设置Winsock控件的远程端口号为5000(与前面服务器的本地端口号要相一致)。再令Winsock控件执行一个Connect命令,与服务器的Winsock控件进行连接。Winsock1.RemoteHost=Text1.TextWinsock1.RemotePort=5000IfWinsock1.State=0ThenForm1.Winsock1.Connect第二步:服务器的Winsock控件的ConnectionRequest的事件接收ID号。PrivateSubWinsock1-ConnectionRequest(ByValrequestIDAsLong)IfWinsock1.State<>0ThenWinsock1.CloseWinsock1.AcceptrequestIDddid=Str$(requestID)EndSub上面的程序是服务器的Winsock控件接收建立连接后的ID号。接收了ID号,说明服务器客户端已经建立了连接。这样,双方就可以互相发送信息了。第三步:双方都可以用SendData命令来发送信息了,并且可以在各自的DataArrival事件中用GetData命令来接收对方发送来的信息。服务器中的Winsock控件的DataArrival事件:PrivateSubWinsock1-DataArrival(ByValbytesTotalAsLong)DimstrDataAsStringWinsock1.GetDatastrDataLabel4.Caption=”来自”+ddid+”消息:”Text4.Text=strData+vbCrLf+Text4.Text・93・第3期 惠州学院学报(自然科学版)EndSub客户端中的Winsock控件的DataArrival事件:PrivateSubWinsock1-DataArrival(ByValbytesTotalAsLong)DimstrDataAsStringWinsock1.GetDatastrDataText2.Text=strData+vbCrLf+Text2.TextEndSub现在,可以在服务器的主界面输入聊天信息,然后发送,客户端的显示窗口便会显示出服务器输入的信息。同样,在客户端的主界面也可以输入聊天信息,然后发送到服务器,以实现聊天的功能。当Winsock控件的状态等于7时,我们便可以从服务器(主机)
发送一条命令到客户机,比如:“锁定远程计算机”,那么我们在客户端接收到这条信息之后,便做客户端“锁定远程计算机”的操作。这时候客户端就被锁定了,键盘和鼠标均不能操作。这种锁定方法是调用WINDOWSAPI函数的,也可以直接调用BIOS中断的方法,使键盘和鼠标失效。要使用键盘和鼠标就再用BIOS中断把功能恢复过来。两种方法进行比较,当然是后者比较好,前者是键盘鼠标大部分功能失效,而后者是完全失效。当客户端被锁定时,服务器同样可以发送一条命令,如“解锁远程计算机”,当客户端接收到这条命令之后,恢复原来的情形便可。文件传输的方法有很多,其中一种比较简单的方法是把服务器上的文件打开,然后一个字节一个字节地读出来,发送到客户端;客户端把接收过来的字节再组合成一个文件,并把它保存在磁盘上。本系统采用的方法就是这种方法。实现远程广播可以把服务器的界面广播到客户端,这样可以便于教学。在教师在讲解某项操作时,广播到客户机,学生可以在自己的计算机旁边听老师的讲解边观看老师的操作,达到同步的效果,并且还可以节约投影仪的费用。我们可以把服务器的界面以文件的形式保存下来,然后调用文件传输把文件传输到客户端,客户端再把文件打开显示出来,便可起到远程广播的作用。远程广播,使得服务器的界面传输到客户端,有几种方法。第一种方法是强迫式,就是不管学生愿不愿意,都传送过去,并且禁止客户端的任何操作,包括键盘和鼠标,使得学生被迫接受服务器的信息。第二种方法是窗口式,服务器的界面以传送过去之后,以窗口的形式显示在客户端的显示器上,客户端的用户可以过观看服务器用户的操作边进行模仿性的操作,可以实时跟进。实现远程控制可以在服务器上控制客户机的运行,也就是接管客户机的控制权。实现远程控制可以这样处理,首先把客户端的界面传输到服务器,把客户端的键盘、鼠标功能暂时使之失效,然后把服务器的键盘鼠标的操作传输到客户端,客户端根据服务器的键盘鼠标操作弄到客户端上来,相当于是用服务器的键盘鼠标控制客户端。3 远程控制系统的主要界面和部分代码3.1远程控制系统(服务器)的主要界面・04・吴志攀 赵跃龙 杜华英 远程控制系统的设计与实现 2004年
3.2远程控制系统(客户机)的主要界面・14・第3期 惠州学院学报(自然科学版)3.3服务端主界面的部分程序清单DimddidAsStringPrivateSubCombo1-Click()IfWinsock1.State=7Then Winsock1.SendDataCombo1.TextElse MsgBox”还未连接到客户机…”,64,”提示信息”EndIfEndSubPrivateSubCombo2-Click()IfWinsock1.State=7Then Text4.Text=Combo2.Text+vbCrLf+Text4.Text Winsock1.SendDataCombo2.TextElse MsgBox”还未连接…”EndIfEndSub
PrivateSubCommand1-Click()UnloadMeEndSub
PrivateSubCommand4-Click()IfWinsock1.State=7Then Winsock1.SendData”关闭远程计算机”Else MsgBox”还未连接到客户机…”,64,”提示信息”EndI
fEndSub
PrivateSubCommand6-Click()
IfWinsock1.State=7Then Text5.Text=Winsock1.LocalHostName+”(”+CStr(Time())+”):”+Text5.Text Winsock1.SendDataText5.Text Text4.Text
=Text5.Text+vbCrLf+Text4.Text Text5.Text=””Else MsgBox”还未连接到客户机...”,64,”提示信息”・24・吴志攀 赵跃龙 杜华英 远程控制系统的设计与实现 2004年EndIfText5.SetFocusEndSub
4 结束语以上从几个方面初步证实了用VisualBasic对远程控制系统的可设计性和可实现性。并对其中每个部分的功能进行了较为详细的说明。在计算机网络化的时代,对局域网内部的计算机管理显得格外必要,对文件系统的共享、信息的流动等方面也必不可少。我们可以有效提高工作效率,大量节约工作时间。
参
考文献
[1]陈俊原.活用VisualBasic5.0数据库编程[M].北京:清华大学出版社,1998[2]段银田等.VisualBasic程序设计基础[M].北京:高等教育出版社,1999[3]洪锦魁.精通VisualBasic6.0中文版[M].西安:世界图书出版公司,2000TheDesignandRealizationofRemoteControlSystemWUZhi-pan,DUHua-ying(ITEngineering,CSU,Changsha410083China;Elect.Engin.Dept.,HuizhouUniversity,Huizhou516015China)Abstract Theauthordiscussesthedesignandrealizationofremotecontrolsystem,describesthefunctionsofeachpartofthesystem.Keywords remotecontrol;Winsock;VisualBasic・34・第3期 惠州学院学报(自然科学版)