金詩(shī)淇
遼寧錦州渤海大學(xué)工學(xué)院
遠(yuǎn)程通信控制系統(tǒng)的開(kāi)發(fā)與實(shí)現(xiàn)
金詩(shī)淇
遼寧錦州渤海大學(xué)工學(xué)院
隨著計(jì)算機(jī)網(wǎng)絡(luò)持續(xù)不斷地發(fā)展,遠(yuǎn)程控制技術(shù)越來(lái)越受到人們的青睞,通過(guò)遠(yuǎn)程控制系統(tǒng)可以完成限定目標(biāo)計(jì)算機(jī)以及遠(yuǎn)程操作計(jì)算機(jī)等功能。本文所設(shè)計(jì)的遠(yuǎn)程通信控制系統(tǒng)是基于C/S的開(kāi)發(fā)模式,主要介紹了系統(tǒng)設(shè)計(jì)開(kāi)發(fā)的功能需求,并提出了系統(tǒng)設(shè)計(jì)的總體方案,闡述了系統(tǒng)的詳細(xì)設(shè)計(jì)。整個(gè)系統(tǒng)界面友好,實(shí)現(xiàn)了即時(shí)通訊、文件傳輸、屏幕截圖、命令傳輸?shù)裙δ?,基本達(dá)到了遠(yuǎn)程通信控制系統(tǒng)相應(yīng)的要求。
遠(yuǎn)程控制 C/S模式 TCP
遠(yuǎn)程控制一般支持的網(wǎng)絡(luò)方式有:廣域網(wǎng)、局域網(wǎng)、撥號(hào)方式、互聯(lián)網(wǎng)方式。另外,有些遠(yuǎn)程控制軟件還可以通過(guò)串口、并口實(shí)現(xiàn)對(duì)遠(yuǎn)距離的計(jì)算機(jī)的操控。遠(yuǎn)程通信包含了很多功能,包括能夠獲取目標(biāo)計(jì)算機(jī)系統(tǒng)的信息和登錄口令等各種秘密類信息,能夠自動(dòng)地跟蹤目標(biāo)計(jì)算機(jī)的屏幕圖像的變化,能夠任意操作目標(biāo)計(jì)算機(jī)的文件,能夠限制目標(biāo)計(jì)算機(jī)系統(tǒng)的功能,能夠?qū)崿F(xiàn)遠(yuǎn)程開(kāi)關(guān)機(jī)、發(fā)送文字文件等。
網(wǎng)絡(luò)遠(yuǎn)程控制技術(shù)不斷發(fā)展,于是出現(xiàn)了網(wǎng)上監(jiān)控,比如學(xué)校機(jī)房教師終端能監(jiān)視學(xué)生端電腦屏幕。將遠(yuǎn)程控制應(yīng)用于局域網(wǎng)管理中,已成為目前局域網(wǎng)管理的重要手段。遠(yuǎn)程控制技術(shù)最早應(yīng)用在網(wǎng)絡(luò)中是在DOS時(shí)代,隨著計(jì)算機(jī)網(wǎng)絡(luò)持續(xù)不斷地發(fā)展,以及計(jì)算機(jī)的管理和技術(shù)支持的需要,遠(yuǎn)程控制技術(shù)越來(lái)越受到人們的青睞。
本系統(tǒng)是遠(yuǎn)程通信控制系統(tǒng),其基于C/S模式,主要有客戶端程序和服務(wù)器端程序。服務(wù)器端負(fù)責(zé)監(jiān)聽(tīng)來(lái)自客戶端的登錄請(qǐng)求,實(shí)現(xiàn)身份認(rèn)證功能;為客戶端截獲屏幕圖像,并傳回客戶端;接收客戶端發(fā)送的鼠標(biāo)和鍵盤(pán)命令,并負(fù)責(zé)解釋執(zhí)行;還能與客戶端進(jìn)行簡(jiǎn)單的即時(shí)通訊和文件傳輸??蛻舳藢?shí)現(xiàn)用戶注冊(cè)、用戶登錄,接收服務(wù)器端傳回的屏幕圖像,向服務(wù)器端發(fā)送鼠標(biāo)和鍵盤(pán)命令,還能與服務(wù)器端進(jìn)行簡(jiǎn)單的即時(shí)通訊和文件傳輸。系統(tǒng)功能結(jié)構(gòu)圖如圖1所示:
圖1 系統(tǒng)功能結(jié)構(gòu)圖
本文設(shè)計(jì)的遠(yuǎn)程通信控制系統(tǒng)主要包括客戶端程序設(shè)計(jì)和服務(wù)器端程序設(shè)計(jì)兩個(gè)方面。系統(tǒng)通過(guò)Socket編程接口,采用TCP協(xié)議實(shí)現(xiàn)客戶端程序和服務(wù)器端程序的數(shù)據(jù)交換。
3.1 即時(shí)通訊模塊
即時(shí)通訊模塊主要是實(shí)現(xiàn)客戶端與服務(wù)器端聊天功能。主要實(shí)現(xiàn)過(guò)程是:在信息輸入框鍵入要發(fā)送的消息后選擇發(fā)送,則會(huì)在各自界面上顯示。若是客戶端發(fā)送的消息,會(huì)在聊天界面上顯示年月日時(shí)間+某某(注冊(cè)后的用戶名)+發(fā)送的文字;若是服務(wù)器端發(fā)送了消息,也會(huì)顯示在聊天界面上。
3.2 文件傳輸模塊
文件傳輸模塊包括文件上傳與下載,實(shí)現(xiàn)了客戶端與服務(wù)器端文件的雙向傳輸。實(shí)現(xiàn)文件傳輸?shù)倪^(guò)程為:在客戶端選擇一個(gè)文件并將它發(fā)送給服務(wù)器端,服務(wù)器端會(huì)出現(xiàn)提示框,提示用戶是否對(duì)文件進(jìn)行接收,若是選擇接收文件,在客戶端會(huì)顯示文件傳輸成功。相反,服務(wù)器端發(fā)送文件也是如此。
3.3 屏幕截獲模塊
屏幕截獲模塊包括屏幕圖像的抓取、壓縮、發(fā)送與接收。主要實(shí)現(xiàn)過(guò)程是:客戶端向服務(wù)器端發(fā)送一個(gè)截屏命令,服務(wù)器端接收到截屏命令后抓取當(dāng)前的屏幕圖像,因?yàn)樽ト〉奈粓D數(shù)據(jù)量很大,所以在將屏幕圖像傳回客戶端前應(yīng)該對(duì)截取的屏幕圖像進(jìn)行壓縮,這樣客戶端可以查看到服務(wù)器端的屏幕。
3.4 遠(yuǎn)程控制模塊
遠(yuǎn)程控制模塊涉及鼠標(biāo)、鍵盤(pán)的操作,在客戶端模擬響應(yīng)用戶的鼠標(biāo)點(diǎn)擊或鍵盤(pán)的錄入,這些信息通過(guò)網(wǎng)絡(luò)傳送到服務(wù)器端,讓服務(wù)器端主機(jī)真正地執(zhí)行??蛻舳瞬蹲绞髽?biāo)或鍵盤(pán)在圖形化接口中的動(dòng)作,包括鼠標(biāo)的動(dòng)作和坐標(biāo)、鍵盤(pán)的錄入,然后將這些信息通過(guò)網(wǎng)絡(luò)發(fā)送到服務(wù)器端,服務(wù)器端計(jì)算機(jī)的服務(wù)程序就會(huì)發(fā)送這些消息給操作系統(tǒng)。實(shí)現(xiàn)過(guò)程是在客戶端顯示的從服務(wù)器端發(fā)來(lái)的屏幕圖像上進(jìn)行鼠標(biāo)操作,包括鼠標(biāo)左鍵單雙擊和右鍵單擊,相應(yīng)的操作命令通過(guò)網(wǎng)絡(luò)傳送到服務(wù)器端,服務(wù)器端接收到命令后執(zhí)行。
4.1 客戶端與服務(wù)器端連接設(shè)計(jì)
客戶端與服務(wù)器端建立連接從而實(shí)現(xiàn)通信是系統(tǒng)的核心關(guān)鍵。本系統(tǒng)沒(méi)有直接使用Socket類,而是使用了TcpListener類和TcpClient類。這兩個(gè)類屬于.NET框架下網(wǎng)絡(luò)通信中的應(yīng)用層,提供了一種簡(jiǎn)單、友好的套接字通信接口。這些應(yīng)用層類是Socket類的封裝,提供了比Socket類更高層次的抽象,從而不用關(guān)心處理連接的細(xì)節(jié)。TcpListener類是在服務(wù)器端使用,它的作用是監(jiān)聽(tīng)從客戶端傳來(lái)的TCP連接請(qǐng)求。TcpClient類是在客戶端使用,它的作用是允許創(chuàng)建和使用TCP連接。
客戶端與服務(wù)器端建立連接實(shí)現(xiàn)通信的具體實(shí)現(xiàn)過(guò)程為:客戶端創(chuàng)建TcpClient類的實(shí)例對(duì)象client,服務(wù)器端創(chuàng)建TcpListener類的實(shí)例對(duì)象listener,listener調(diào)用Start()方法啟動(dòng)監(jiān)聽(tīng),當(dāng)監(jiān)聽(tīng)到客戶端連接后,實(shí)例對(duì)象listener使用AcceptTcpClient()方法接受來(lái)自客戶端的TCP連接??蛻舳伺c服務(wù)器端連接成功后,client使用GetStream()方法獲得客戶端網(wǎng)絡(luò)數(shù)據(jù)流,下面就是用數(shù)據(jù)流的方法來(lái)進(jìn)行數(shù)據(jù)的發(fā)送和接收。
4.2 主要模塊具體實(shí)現(xiàn)
4.2.1 即時(shí)通訊模塊
客戶端在richTextBoxSend中鍵入消息,按下buttonSend鍵,系統(tǒng)使用getTalkMessage()方法得到鍵入的文字消息,并調(diào)用Common類中的convertMessageToByte()方法將消息轉(zhuǎn)化為字節(jié),然后利用流發(fā)送出去,并在richTextBoxMessage中顯示年月日時(shí)間+某某(注冊(cè)時(shí)的用戶名)+發(fā)送的文字消息。若服務(wù)器回復(fù)消息,在richTextBoxMessage中則顯示年月日時(shí)間+服務(wù)器+發(fā)送的文字消息。如圖2所示:
圖2 即時(shí)通訊模塊
4.2.2 文件傳輸模塊
在客戶端按下該按鈕,選擇相應(yīng)的文件進(jìn)行發(fā)送,系統(tǒng)調(diào)用Common類相應(yīng)的方法將文件轉(zhuǎn)化為流,然后利用流將文件發(fā)送出去,此時(shí)服務(wù)器端會(huì)被提醒是否接收文件,若接收文件,傳輸成功后可以在res文件夾中查看到文件。因?yàn)閷⑽募D(zhuǎn)化為流進(jìn)行傳輸,所以該系統(tǒng)能實(shí)現(xiàn)任意類型文件的傳輸。
4.2.3 屏幕截獲模塊
屏幕截獲模塊具體實(shí)現(xiàn)過(guò)程為:客戶端按下buttonPrtSc鍵,向服務(wù)器端發(fā)送截屏命令,服務(wù)器端接收到命令后利用上面提到的方式截屏,將截獲的屏幕圖像按比例壓縮,最后將它轉(zhuǎn)化為流的方式傳回客戶端,同時(shí)在客戶端主界面的PictureBox中顯示。該系統(tǒng)實(shí)現(xiàn)了在客戶端發(fā)送截屏命令后,服務(wù)器端每隔50ms抓取一次屏幕圖像并傳回客戶端。
4.2.4 遠(yuǎn)程控制模塊
遠(yuǎn)程控制模塊主要實(shí)現(xiàn)了客戶端在截獲的屏幕上的鼠標(biāo)操作,還有CMD指令操作。鼠標(biāo)操作模塊調(diào)用Windows系統(tǒng)函數(shù)SetCursorPos(int X,int Y),該函數(shù)的參數(shù)X和Y指定了屏幕的新的X、Y坐標(biāo),作用是將光標(biāo)移動(dòng)到屏幕的指定位置。實(shí)現(xiàn)鼠標(biāo)控制的過(guò)程是:在截獲的屏幕圖像上進(jìn)行鼠標(biāo)操作,如單擊右鍵,系統(tǒng)將鼠標(biāo)在屏幕上的坐標(biāo)位置動(dòng)作發(fā)送到服務(wù)器端,服務(wù)器端接收到這些信息后真正執(zhí)行。遠(yuǎn)程控制模塊包括鼠標(biāo)和鍵盤(pán)操作。鼠標(biāo)操作包括鼠標(biāo)左鍵單擊、雙擊和右鍵單擊,在客戶端界面進(jìn)行鼠標(biāo)操作,服務(wù)器端桌面會(huì)響應(yīng),就好直接在服務(wù)器電腦上進(jìn)行操作一樣。在“截圖”頁(yè)面,雙擊文件“基礎(chǔ)知識(shí).txt”,服務(wù)器端就會(huì)把該文件打開(kāi),如圖3所示:
圖3 遠(yuǎn)程控制模塊
本系統(tǒng)采用C/S模式,包括客戶端和服務(wù)器端,設(shè)計(jì)完成了遠(yuǎn)程通信控制系統(tǒng)?;具_(dá)到了網(wǎng)絡(luò)通信和遠(yuǎn)程控制的功能需求,實(shí)現(xiàn)了客戶端和服務(wù)器端即時(shí)通訊、文件傳輸、遠(yuǎn)程監(jiān)控、簡(jiǎn)單的遠(yuǎn)程鼠標(biāo)控制等基本功能。
[1]朱正禮.計(jì)算機(jī)遠(yuǎn)程控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].信息技術(shù),2006,12
[2]華龍.計(jì)算機(jī)遠(yuǎn)程控制技術(shù)的原理與實(shí)現(xiàn)[J].天津農(nóng)學(xué)院學(xué)報(bào),2007,03
[3]任保獻(xiàn),馬磊.基于C/S的遠(yuǎn)程控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].安陽(yáng)師范學(xué)院學(xué)報(bào),2005,02
[4]孫亞.遠(yuǎn)程圖像傳輸及屏幕抓取的原理與實(shí)現(xiàn)[J].內(nèi)蒙古電大學(xué)刊,2003,01
[5]劉旭東.一種遠(yuǎn)程控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].微型電腦應(yīng)用,2006,03:26-28+67
[6]Alan Shalloway James R. Trott 著. Design Patterns Explained[M].中國(guó)電力出版社,2003-7
[7]徐向陽(yáng),曹幫琴.差異截圖法實(shí)現(xiàn)屏幕圖像快速傳輸[J].南陽(yáng)師范學(xué)院學(xué)報(bào),2007,09:63-65
[8]董祖雄,謝捷生.遠(yuǎn)程屏幕傳輸系統(tǒng)及其構(gòu)架方案[J].中國(guó)農(nóng)業(yè)大學(xué)學(xué)報(bào),2001,04:89-92
[9]張英,王景新.網(wǎng)絡(luò)安全基礎(chǔ)[M].北京:中國(guó)電力出版社,2004:45-126
[10]宋彥儒,周翔.計(jì)算機(jī)遠(yuǎn)程控制系統(tǒng)設(shè)計(jì)[J].科技廣場(chǎng),2008,12:61-62