摘 要:實(shí)現(xiàn)局域網(wǎng)遠(yuǎn)程控制的最常用方法是使用遠(yuǎn)程控制軟件。服務(wù)器端程序(Server)和客戶端程序(Client)是遠(yuǎn)程控制軟件的主要構(gòu)成部分,由客戶端將信號(hào)發(fā)送到服務(wù)器端來實(shí)現(xiàn)對被控制端電腦的遠(yuǎn)程控制,而利用java語言編寫的控制軟件具有廣泛的實(shí)用性,因此本文針對基于java語言的控制軟件實(shí) 現(xiàn)局域網(wǎng)遠(yuǎn)程控制進(jìn)行研究和探討。
關(guān)鍵詞:遠(yuǎn)程控制;PcAnywhere;VNC;java;客戶機(jī);服務(wù)器
中圖分類號(hào):TP393.1 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2011)02(c)-0000-00
通過一些軟件(如PcAnywhere,VNC等)可以實(shí)現(xiàn)遠(yuǎn)程控制功能,通過共享桌面對遠(yuǎn)程主機(jī)做一些想執(zhí)行的操作,如同控制本地的計(jì)算機(jī)一樣。通過遠(yuǎn)程控制的技術(shù)可以輕松對遠(yuǎn)程電腦進(jìn)行維護(hù)、監(jiān)控與排除故障,這種技術(shù)具有很好的應(yīng)用和開發(fā)前景??缙脚_(tái)性是java語言的顯著特點(diǎn),因此通過Java語言來編寫的遠(yuǎn)程控制軟件實(shí)用性更加廣泛。本文中,將介紹遠(yuǎn)程控制的原理、實(shí)現(xiàn)局域網(wǎng)遠(yuǎn)程控制的常用方法以及如何利用Java實(shí)現(xiàn)局域網(wǎng)遠(yuǎn)程控制。
1 遠(yuǎn)程控制的原理
遠(yuǎn)程控制的原理是:首先控制端和被控制端均連接到網(wǎng)絡(luò),遠(yuǎn)程被控制端接收控制端發(fā)送過來的身份驗(yàn)證以及連接請求,倘若能夠通過驗(yàn)證,便可以實(shí)現(xiàn)連接,同時(shí)將驗(yàn)證通過和已建立連接的信息發(fā)送到控制端??刂贫司涂梢酝ㄟ^控制端程序或者將要執(zhí)行的指令發(fā)送到遠(yuǎn)程主機(jī),而被控端則執(zhí)行指令,把鼠標(biāo)、鍵盤、刷新屏幕發(fā)送到控制端程序,經(jīng)過控制端處理后把信息顯示給用戶看,這樣,用戶對遠(yuǎn)程主機(jī)的操作就像在本地計(jì)算機(jī)上操作一樣。通過驗(yàn)證以后,兩地計(jì)算機(jī)才能連接在一起,并最終實(shí)現(xiàn)遠(yuǎn)程控制。
遠(yuǎn)程控制軟件常用的模式的C/S模式。在使用控制軟件前,先將控制端程序安裝在控制端主機(jī)上,把被控制端程序安裝到被控端主機(jī)上。這個(gè)控制過程是:首先在控制端執(zhí)行控制端程序,建立遠(yuǎn)程服務(wù),然后借助遠(yuǎn)程服務(wù),發(fā)送遠(yuǎn)程控制命令,控制被控端主機(jī),通過遠(yuǎn)程控制輕松操作遠(yuǎn)程主機(jī)上的所有應(yīng)用程序,這種遠(yuǎn)程控制方式是基于遠(yuǎn)程服務(wù)的。
2 局域網(wǎng)遠(yuǎn)程控制的常用方法
局域網(wǎng)遠(yuǎn)程控制可謂方法眾多,除了系統(tǒng)自帶遠(yuǎn)程控制功能外,市場上有很多利用java編寫的遠(yuǎn)程控制軟件,通過他們可以輕松控制局域網(wǎng)內(nèi)的任何一臺(tái)電腦。局域網(wǎng)遠(yuǎn)程控制的實(shí)現(xiàn)主要有如下方法:
2.1 系統(tǒng)自帶功能實(shí)現(xiàn)遠(yuǎn)程控制
Windows XP系統(tǒng)自身具備遠(yuǎn)程控制的功能,稱為“遠(yuǎn)程協(xié)助”,操作十分簡單。用戶通過遠(yuǎn)程協(xié)助功能可實(shí)現(xiàn)遠(yuǎn)程控制,具體做法是通過MSN Messenger發(fā)送協(xié)助請求,Messenger中的聯(lián)系人在接到請求后,倘若聯(lián)系人同意請求,用戶與聯(lián)系人便可以建立連接,實(shí)現(xiàn)遠(yuǎn)程協(xié)助,在此過程中,聯(lián)系人所使用的計(jì)算機(jī)完全由用戶控制,通過遠(yuǎn)程協(xié)助功能實(shí)現(xiàn)遠(yuǎn)程控制,用戶可對受控端計(jì)算機(jī)進(jìn)行任何操作。
2.2 PcAnywhere
通過PcAnywhere工具實(shí)現(xiàn)局域網(wǎng)的遠(yuǎn)程控制,這款不錯(cuò)的工具可使兩地計(jì)算機(jī)建立連接,并協(xié)同工作。PcAnywhere的使用方法十分簡單,在控制端與被控制端計(jì)算機(jī)上分別安裝好該軟件,便可輕松實(shí)現(xiàn)遠(yuǎn)程控制。
2.3 VNC
VNC (Virtual Network Computing)是虛擬網(wǎng)絡(luò)計(jì)算機(jī)的縮寫,由ATT的歐洲研究實(shí)驗(yàn)室開發(fā)而成的遠(yuǎn)程控制軟件,至今仍被廣泛使用,高效使用是其最大的特點(diǎn),具有較強(qiáng)的遠(yuǎn)程控制能力,主要基于Linux和UNIX操作系統(tǒng),它的實(shí)用性超過了任何一款基于MAC和Windows的遠(yuǎn)程控制軟件。
3通過Java實(shí)現(xiàn)局域網(wǎng)遠(yuǎn)程控制
通過PcAnywhere和VNC軟件都可以很容易的實(shí)現(xiàn)局域網(wǎng)遠(yuǎn)程控制,這兩款軟件都是利用Java編寫的。JAVA語言具有良好的跨平臺(tái)性,用其編寫的軟件也是具有“一次編寫,各處運(yùn)行”的特點(diǎn)。因此,利用Java 實(shí)現(xiàn)遠(yuǎn)程控制有很廣的實(shí)用性。
3.1 總體設(shè)計(jì)
遠(yuǎn)程控制的交互過程是:首先,屏幕圖像由被控制端程序發(fā)送到控制端,控制端向被控制端發(fā)送鍵盤和鼠標(biāo)操作指令,然后在被控制端執(zhí)行操作命令。被控制端發(fā)送出來的屏幕圖像,控制端程序需要不斷的接收,然后在控制端中顯示出來,捕捉到控制端的鍵盤和鼠標(biāo)時(shí)間,發(fā)送到被控制端。雙方整個(gè)交互過程的模型(圖3.1)
3.2程序設(shè)計(jì)實(shí)現(xiàn)要點(diǎn)
利用Java實(shí)現(xiàn)局域網(wǎng)遠(yuǎn)程控制,在進(jìn)行程序設(shè)計(jì)時(shí)需要注意的要點(diǎn)有:鼠標(biāo)和鍵盤事件的獲取及操作模擬、屏幕圖象的壓縮/解壓縮、屏幕圖象及指令的傳輸?shù)取?/p>
3.3 Java Robot對象實(shí)現(xiàn)遠(yuǎn)程服務(wù)器的控制
(1)實(shí)現(xiàn)原理
首先,通過Robot截取被控端桌面圖像,并利用socket通信發(fā)送到控制端。
其次,主控端顯示被控端桌面,并且把基于被控端圖像上的鍵盤,鼠標(biāo)事件通過socket通信傳給被控端。
最后,被控端響應(yīng)主控端的鼠標(biāo)鍵盤事件。
(2)實(shí)現(xiàn)過程
主控端和被控端通過UDP控端向主控端傳遞圖像、圖像顯示,鼠標(biāo),鍵盤監(jiān)聽、被控端接收,響應(yīng)鍵盤鼠標(biāo)事件等通過編寫java代碼來實(shí)現(xiàn)。
在實(shí)現(xiàn)過程中,需要頻繁地、不間斷地獲取、壓縮和傳輸被控制端屏幕圖像以及在控制端接收、解壓縮和顯示屏幕圖像,因此,可以通過多線程技術(shù)來分別進(jìn)行處理。這里就不做詳解了。
4結(jié)束語
通過這次對局域網(wǎng)遠(yuǎn)程控制實(shí)現(xiàn)過程的研究,深入闡明了遠(yuǎn)程控制的原理,通過控制軟件實(shí)現(xiàn)局域網(wǎng)遠(yuǎn)程控制的過程,以及利用java實(shí)現(xiàn)局域網(wǎng)遠(yuǎn)程控制。與其他語言編寫的控制軟件相比,用java語言編寫的控制軟件具有“一次編寫,各處運(yùn)行”的特點(diǎn),因此具有更廣的使用性。這次研究也存在不足之處,對利用java實(shí)現(xiàn)局域網(wǎng)遠(yuǎn)程控制過程論述不夠全面,以后還有待進(jìn)一步研究。
參考文獻(xiàn):
[1]常永昌.一種遠(yuǎn)程控制軟件的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用.2003,23(3):127-128,131.
[2]張國華.網(wǎng)友電腦遠(yuǎn)程控制[J].網(wǎng)友世界合訂本.2004,24(12):277-282.
[3]曾剛,黃永友.前沿網(wǎng)絡(luò)應(yīng)用[M].北京:希望電子出版社.2003,187-192.
[4]張棟,周進(jìn),黃成.Linux服務(wù)器配置與管理[M].北京:人民郵電出版社.2009,313-321.
[5]李晨熙,魯鐵華.java語言入門[M].北京:中國電力出版社.2001,3-4.