金詩淇
遼寧錦州渤海大學工學院
遠程通信控制系統的開發與實現
金詩淇
遼寧錦州渤海大學工學院
隨著計算機網絡持續不斷地發展,遠程控制技術越來越受到人們的青睞,通過遠程控制系統可以完成限定目標計算機以及遠程操作計算機等功能。本文所設計的遠程通信控制系統是基于C/S的開發模式,主要介紹了系統設計開發的功能需求,并提出了系統設計的總體方案,闡述了系統的詳細設計。整個系統界面友好,實現了即時通訊、文件傳輸、屏幕截圖、命令傳輸等功能,基本達到了遠程通信控制系統相應的要求。
遠程控制 C/S模式 TCP
遠程控制一般支持的網絡方式有:廣域網、局域網、撥號方式、互聯網方式。另外,有些遠程控制軟件還可以通過串口、并口實現對遠距離的計算機的操控。遠程通信包含了很多功能,包括能夠獲取目標計算機系統的信息和登錄口令等各種秘密類信息,能夠自動地跟蹤目標計算機的屏幕圖像的變化,能夠任意操作目標計算機的文件,能夠限制目標計算機系統的功能,能夠實現遠程開關機、發送文字文件等。
網絡遠程控制技術不斷發展,于是出現了網上監控,比如學校機房教師終端能監視學生端電腦屏幕。將遠程控制應用于局域網管理中,已成為目前局域網管理的重要手段。遠程控制技術最早應用在網絡中是在DOS時代,隨著計算機網絡持續不斷地發展,以及計算機的管理和技術支持的需要,遠程控制技術越來越受到人們的青睞。
本系統是遠程通信控制系統,其基于C/S模式,主要有客戶端程序和服務器端程序。服務器端負責監聽來自客戶端的登錄請求,實現身份認證功能;為客戶端截獲屏幕圖像,并傳回客戶端;接收客戶端發送的鼠標和鍵盤命令,并負責解釋執行;還能與客戶端進行簡單的即時通訊和文件傳輸。客戶端實現用戶注冊、用戶登錄,接收服務器端傳回的屏幕圖像,向服務器端發送鼠標和鍵盤命令,還能與服務器端進行簡單的即時通訊和文件傳輸。系統功能結構圖如圖1所示:

圖1 系統功能結構圖
本文設計的遠程通信控制系統主要包括客戶端程序設計和服務器端程序設計兩個方面。系統通過Socket編程接口,采用TCP協議實現客戶端程序和服務器端程序的數據交換。
3.1 即時通訊模塊
即時通訊模塊主要是實現客戶端與服務器端聊天功能。主要實現過程是:在信息輸入框鍵入要發送的消息后選擇發送,則會在各自界面上顯示。若是客戶端發送的消息,會在聊天界面上顯示年月日時間+某某(注冊后的用戶名)+發送的文字;若是服務器端發送了消息,也會顯示在聊天界面上。
3.2 文件傳輸模塊
文件傳輸模塊包括文件上傳與下載,實現了客戶端與服務器端文件的雙向傳輸。實現文件傳輸的過程為:在客戶端選擇一個文件并將它發送給服務器端,服務器端會出現提示框,提示用戶是否對文件進行接收,若是選擇接收文件,在客戶端會顯示文件傳輸成功。相反,服務器端發送文件也是如此。
3.3 屏幕截獲模塊
屏幕截獲模塊包括屏幕圖像的抓取、壓縮、發送與接收。主要實現過程是:客戶端向服務器端發送一個截屏命令,服務器端接收到截屏命令后抓取當前的屏幕圖像,因為抓取的位圖數據量很大,所以在將屏幕圖像傳回客戶端前應該對截取的屏幕圖像進行壓縮,這樣客戶端可以查看到服務器端的屏幕。
3.4 遠程控制模塊
遠程控制模塊涉及鼠標、鍵盤的操作,在客戶端模擬響應用戶的鼠標點擊或鍵盤的錄入,這些信息通過網絡傳送到服務器端,讓服務器端主機真正地執行。客戶端捕捉鼠標或鍵盤在圖形化接口中的動作,包括鼠標的動作和坐標、鍵盤的錄入,然后將這些信息通過網絡發送到服務器端,服務器端計算機的服務程序就會發送這些消息給操作系統。實現過程是在客戶端顯示的從服務器端發來的屏幕圖像上進行鼠標操作,包括鼠標左鍵單雙擊和右鍵單擊,相應的操作命令通過網絡傳送到服務器端,服務器端接收到命令后執行。
4.1 客戶端與服務器端連接設計
客戶端與服務器端建立連接從而實現通信是系統的核心關鍵。本系統沒有直接使用Socket類,而是使用了TcpListener類和TcpClient類。這兩個類屬于.NET框架下網絡通信中的應用層,提供了一種簡單、友好的套接字通信接口。這些應用層類是Socket類的封裝,提供了比Socket類更高層次的抽象,從而不用關心處理連接的細節。TcpListener類是在服務器端使用,它的作用是監聽從客戶端傳來的TCP連接請求。TcpClient類是在客戶端使用,它的作用是允許創建和使用TCP連接。
客戶端與服務器端建立連接實現通信的具體實現過程為:客戶端創建TcpClient類的實例對象client,服務器端創建TcpListener類的實例對象listener,listener調用Start()方法啟動監聽,當監聽到客戶端連接后,實例對象listener使用AcceptTcpClient()方法接受來自客戶端的TCP連接??蛻舳伺c服務器端連接成功后,client使用GetStream()方法獲得客戶端網絡數據流,下面就是用數據流的方法來進行數據的發送和接收。
4.2 主要模塊具體實現
4.2.1 即時通訊模塊
客戶端在richTextBoxSend中鍵入消息,按下buttonSend鍵,系統使用getTalkMessage()方法得到鍵入的文字消息,并調用Common類中的convertMessageToByte()方法將消息轉化為字節,然后利用流發送出去,并在richTextBoxMessage中顯示年月日時間+某某(注冊時的用戶名)+發送的文字消息。若服務器回復消息,在richTextBoxMessage中則顯示年月日時間+服務器+發送的文字消息。如圖2所示:

圖2 即時通訊模塊
4.2.2 文件傳輸模塊
在客戶端按下該按鈕,選擇相應的文件進行發送,系統調用Common類相應的方法將文件轉化為流,然后利用流將文件發送出去,此時服務器端會被提醒是否接收文件,若接收文件,傳輸成功后可以在res文件夾中查看到文件。因為將文件轉化為流進行傳輸,所以該系統能實現任意類型文件的傳輸。
4.2.3 屏幕截獲模塊
屏幕截獲模塊具體實現過程為:客戶端按下buttonPrtSc鍵,向服務器端發送截屏命令,服務器端接收到命令后利用上面提到的方式截屏,將截獲的屏幕圖像按比例壓縮,最后將它轉化為流的方式傳回客戶端,同時在客戶端主界面的PictureBox中顯示。該系統實現了在客戶端發送截屏命令后,服務器端每隔50ms抓取一次屏幕圖像并傳回客戶端。
4.2.4 遠程控制模塊
遠程控制模塊主要實現了客戶端在截獲的屏幕上的鼠標操作,還有CMD指令操作。鼠標操作模塊調用Windows系統函數SetCursorPos(int X,int Y),該函數的參數X和Y指定了屏幕的新的X、Y坐標,作用是將光標移動到屏幕的指定位置。實現鼠標控制的過程是:在截獲的屏幕圖像上進行鼠標操作,如單擊右鍵,系統將鼠標在屏幕上的坐標位置動作發送到服務器端,服務器端接收到這些信息后真正執行。遠程控制模塊包括鼠標和鍵盤操作。鼠標操作包括鼠標左鍵單擊、雙擊和右鍵單擊,在客戶端界面進行鼠標操作,服務器端桌面會響應,就好直接在服務器電腦上進行操作一樣。在“截圖”頁面,雙擊文件“基礎知識.txt”,服務器端就會把該文件打開,如圖3所示:

圖3 遠程控制模塊
本系統采用C/S模式,包括客戶端和服務器端,設計完成了遠程通信控制系統。基本達到了網絡通信和遠程控制的功能需求,實現了客戶端和服務器端即時通訊、文件傳輸、遠程監控、簡單的遠程鼠標控制等基本功能。
[1]朱正禮.計算機遠程控制系統的設計與實現[J].信息技術,2006,12
[2]華龍.計算機遠程控制技術的原理與實現[J].天津農學院學報,2007,03
[3]任保獻,馬磊.基于C/S的遠程控制系統的設計與實現[J].安陽師范學院學報,2005,02
[4]孫亞.遠程圖像傳輸及屏幕抓取的原理與實現[J].內蒙古電大學刊,2003,01
[5]劉旭東.一種遠程控制系統的設計與實現[J].微型電腦應用,2006,03:26-28+67
[6]Alan Shalloway James R. Trott 著. Design Patterns Explained[M].中國電力出版社,2003-7
[7]徐向陽,曹幫琴.差異截圖法實現屏幕圖像快速傳輸[J].南陽師范學院學報,2007,09:63-65
[8]董祖雄,謝捷生.遠程屏幕傳輸系統及其構架方案[J].中國農業大學學報,2001,04:89-92
[9]張英,王景新.網絡安全基礎[M].北京:中國電力出版社,2004:45-126
[10]宋彥儒,周翔.計算機遠程控制系統設計[J].科技廣場,2008,12:61-62