薛婉婷 海小娟 徐偉杰 張衛(wèi)東 陸曉雪
摘要:本文描述以智能手機為主控端,直接控制個人電腦工作的系統(tǒng)的設計與實現(xiàn)。即當智能手機與電腦處于同一局域網下,使用TCP傳輸協(xié)議與一套自定義的應用層協(xié)議,通過Socket套接字向網絡發(fā)出、應答請求,并連接智能手機以遠程操控計算機。
關鍵詞:Socket;手機連接電腦;遠程控制
1.引言
隨著科技的發(fā)展,當今的智能手機具備了除基本通信外的其它豐富且強大的功能,遠程操作及控制技術越來越受到人們的關注?;贘AVA 與Socket技術結合的C/S遠程操控系統(tǒng)軟件打破了空間限制,使用戶無需親自前往目標位置,對受控機器的監(jiān)控就可通過網絡直接實現(xiàn),并具有友好的操作界面。
本文具體討論了如何通過Socket套接字實現(xiàn)手機與電腦的連接,通過智能手機發(fā)出指令,遙控電腦以實現(xiàn)打開電腦程序,打開電腦文件夾,關機,PPT控制以及捕捉電腦屏幕截圖等功能。
2.遠程控制
遠程控制是指主控端通過遠程控制軟件向終端發(fā)送操作命令控制其完成某些工作,遠程控制技術是目前比較流行的一種技術。
最理想的遠程控制軟件模式是一對多模式,即一臺控制機可以控制多臺電腦,且客戶端能夠展現(xiàn)全部電腦目錄,再進行一系列的操作,如遠程資源管理器等,這種技術將便利人類的生產和生活。
本軟件所實現(xiàn)的是一對一的模式。與此同時,本文所談的“遠程”也并不等同于字面意思上的遠距離,而是主控端和被控端在同一局域網下,不需要數(shù)據(jù)線,通過網絡相互連接。
3.Socket
Socket的作用是將互聯(lián)網中兩個或者多個程序相互連接在一起,先實現(xiàn)虛擬機或者計算機之間數(shù)據(jù)的通信,最后將計算機中的應用進行連接,實現(xiàn)雙向數(shù)據(jù)交換,。
Android系統(tǒng)與服務器間的通信方式以HTTP,Socket為主。這兩種通信方式各有利弊,HTTP連接使用的是客戶端請求—服務區(qū)端響應方式來進行前后端的通信,服務器要在客戶端向服務器發(fā)送請求后接收到前端傳來的數(shù)據(jù)參數(shù),然后再根據(jù)不同情況做出不同的響應。而Socket則是在通信雙方先建立連接,然后雙方就可以直接進行任意的數(shù)據(jù)交換,而且可主動推送信息,不必頻繁的每次都向服務器重新發(fā)送請求。
系統(tǒng)的數(shù)據(jù)報套接字應用程序根據(jù)規(guī)定的事件序列完成應用程序和服務器間的通信,如圖1所示:
4.設計與實現(xiàn)
該系統(tǒng)采用C/S架構,Java語言編程,包括了PC端(服務器端)和手持設備端(客戶端)及用于服務器和客戶端之間通信的應用層協(xié)議。
智能手機是客戶端,即請求發(fā)出端;受控PC機為服務端,即請求接收端。首先在服務器端和客戶端上分別安裝并啟動相應的服務程序。然后,在智能手機上進行相應的操作向服務器程序發(fā)出信號,輸入程序設置的服務器的IP地址,并基于TCP協(xié)議建立遠程服務連接。最后通過該遠程服務,使用各種遠程控制功能發(fā)送相應的遠程控制指令,服務器端響應接收的命令并將其轉換為特點的操作,再根據(jù)程序設置的規(guī)則執(zhí)行。
4.1服務器端設計
服務器端軟件設計有三個關鍵問題需要解決:一是數(shù)據(jù)的連接;二是接收、解析并執(zhí)行客戶端發(fā)出的命令;三是及時、正確地將電腦桌面圖像,桌面文件及應用程序傳輸?shù)娇蛻舳顺绦?。服務器端軟件設計目標是在不降低用戶體驗的情況下,盡可能的降低數(shù)據(jù)流量的消耗。在C/S模式中,服務器程序通常會提前啟動并在其熟知的端口上偵聽客戶端發(fā)送的請求。
考慮到在服務器運行期間出現(xiàn)可能有多個客戶端同時連接到此服務器的情況,因此選擇采用多線程來實現(xiàn)連接過程。由于計算機在同一時間內只能由一部智能手機控制,因此選擇由while()循環(huán)實現(xiàn),若accept()方法成功并執(zhí)行完該次連接,則繼續(xù)接收下一次的連接請求。由于socket通信是使用一次長連接,故采用while(true)的形式用于連續(xù)的接受客戶端發(fā)送的控制命令并執(zhí)行它,而不會在執(zhí)行了一個操作后就結束了,從而導致異常。
Sever端接受到client端通過Socket傳輸?shù)拿詈?,通過既定的一系列解析規(guī)則,將命令轉化為相應代碼以執(zhí)行對應的操作。
對于桌面圖像的獲取,則有相應的圖像處理模塊針對電腦桌面進行實時截屏,截圖獲取成功后對圖片進行相應的壓縮和縮放以解決手機與電腦屏幕分辨率不同的問題。
服務器端軟件設計流程圖如圖2所示:
4.2 客戶端設計
客戶端軟件設計的基本任務是向用戶提供一系列模擬PC操作方案,并向服務器發(fā)送用戶是操作指令。作為電腦的“遙控器”,客戶端的設計要兼具便捷與美觀,用戶在通過“遙控器”操控電腦時,復雜繁瑣的操作勢必會影響用戶的使用體驗。
我們在智能手機上點擊使用圖形界面對計算機進行操控的時候,指令并不是在主控端實現(xiàn)的,主控端的指令通過一系列的壓縮轉換為信號傳送到被控端,被控端接收、分析信號,然后執(zhí)行相應的指令并將執(zhí)行的結果傳輸?shù)椒掌鞫恕?/p>
當客戶端應用程序需要某項服務,要向服務器發(fā)送請求,服務器會在收到請求后將相應的信息發(fā)送回客戶端。如此客戶端應用程序與服務器程序便建立了通信連接,并且可以在以后知悉數(shù)據(jù)通信。通信連接需要在通信任務完成后關閉。
遠程控制必須通過網絡才能進行,因此在網絡模塊中,其主要解決網絡的連接與關閉,客戶端時刻偵聽連接請求,與服務器建立網絡連接。其相互之間的連接過程如下圖圖3所示:
4.3系統(tǒng)整體結構
該程序總體采用C/S模式,分為兩部分:服務器端和客戶端。
手機控制端又分為:
信息記錄組件:編輯錄入服務器信息,及服務器的IP地址和連接名稱。
套接字建立組件:通過Socket方法建立計算機或虛擬機之間的連接,并實現(xiàn)應用之間的數(shù)據(jù)交換。
數(shù)據(jù)傳輸組件:主要實現(xiàn)對用戶的命令的傳輸。
PPT翻轉組件:首先可以實現(xiàn)PPT的連續(xù)播放。并可通過用戶操作及手機音量鍵來間接控制PPT的前后跳轉。
受控服務器端主要負責接收智能手機控制端發(fā)送的Socket連接請求,建立Socket通信,同時在一個連接上進行長通信,執(zhí)行從手機控制端發(fā)送的控制命令等。包括下列幾個模塊:
套接字建立組件:同客戶端一樣,服務器端也通過套接字構建模塊實現(xiàn)智能手機與電腦之間的通信連接。
數(shù)據(jù)傳輸組件:主要用socket()方法傳輸電腦文件以及屏幕圖像。
鼠標控制組件:實現(xiàn)用戶對鼠標的直接操作。為了更加精確的控制鼠標的移動,設計時將鼠標移動的偏移值設置在一個合理的范圍內,以避免出現(xiàn)鼠標移動不準確或鼠標移動顯示不平滑等現(xiàn)象。
4.4系統(tǒng)效果截圖
系統(tǒng)主要實現(xiàn)在手機利用WIFI實現(xiàn)局域網控制或手機聯(lián)網下登陸服務器與電腦端進行連接,從而在手機上對電腦進行需要的操作,具體功能有文件互傳,播放PPT,獲取屏幕截圖,打開小程序等等。具體功能截圖示例如圖4、圖5所示:
5.意義
隨著科學技術的不斷發(fā)展,人們對電子設備的要求日益提高,尤其是電子設備的便攜性與易用性,手機遠程控制電腦軟件可以解放出門時必須攜帶電腦的負擔,簡化生活,增加學習工作的效率。特別在如今媒體教學的趨勢下,利用智能手機的無線網絡和觸屏功能實現(xiàn)智能遙控的應用已受到廣泛關注,為人們實現(xiàn)無線遙控功能提供了可能。智能手機程控制電腦技術可以充分利用學校提供的局域網,解決教學過程中教師站位問題;由于手機是日常均會攜帶的設備,同時一般人們都能保證手機具有足夠的電量,故不會為解決無線播放帶來額外的負擔,因而有利于教學質量的提升。
6.結束語
本文介紹了通過智能手機計算機的遠程控制系統(tǒng)的設計與實現(xiàn)。此系統(tǒng)通過智能手機的圖形界面和按鈕模型模擬計算機的鍵盤和鼠標事件,手機可以取得電腦桌面,打開電腦軟件,播放PPT,遙控電腦打開文件、應用程序、關機等,實現(xiàn)了智能手機作為電腦遙控器的功能。
參考文獻:
[1]秦耕,程克非,張亞奎.基于智能手機的電腦遠程控制系統(tǒng)設計[J].無線互聯(lián)科技,2010(2):44—46
[2]郭玉芝.基于Socket的實驗室教師機遠程控制系統(tǒng)的設計與研究[D].青島:中國海洋大學,2011