前言:想要寫出一篇令人眼前一亮的文章嗎?我們特意為您整理了5篇遠程控制軟件范文,相信會為您的寫作帶來幫助,發現更多的寫作思路和靈感。
【關鍵詞】Windows XP 遠程控制 開發
0 引言
不得不說市場上的遠程控制軟件玲瑯滿目,種類繁多,常見的就多達十數種,其中網民使用最廣泛的當屬QQ的遠程協助。但是QQ的遠程協助功能是與QQ軟件本身綁定安裝和綁定運行的,無法單獨運行,甚至無法單獨安裝。而且功能本身并不完善,帶寬占用率高,內存、CPU占用率高,導致運行遲緩,常常出現不響應或長時間延遲響應的情況。然而市面上除了QQ的遠程協助之外,多多少少都會收取一部分的費用,而且很多功能華而不實。少數免費軟件除了本身效果不好之外,還會加以各種功能或數量限制,對家庭用戶影響不大,但對于中小型企業的多主機,網絡環境復雜的情況,就不太適用了。
1 總體構想
遠程控制就是以網絡為媒介讓管理人員在原理計算機本體的情況下,對作業對象進行配置、軟件安裝程序、修改等工作。大致的實現方式是通過網絡將被控計算機(服務端)的狀態發送到控制端(客戶端),然后通過在客戶端上的操作來讓服務端執行命令。
主要實現的功能有網絡喚醒睡眠,后臺模式,遠程更新驅動,遠程運行、安裝和卸載程序,剪切板的共享,瀏覽方式切換、一對一和一對多通信,資源管理器的遠程操作,文件下載、記錄操作和限制帶寬占用。
主要要解決的問題有(1)如何通過網絡對接;(2)遠程控制如何實現;(3)通訊模塊如何構建;(4)如何實現數據加密;(5)圖像如何處理;(6)操作界面如何設計。
2.1 如何完成客戶端與服務器的對接
中小型企業內部一般都有一個局域網,但是這僅限于上班時間的使用,如果使用局域網內的點對點直連方式進行遠程控制,就必須在上班時間進行維護,占用很多工作時間,也浪費了在家中的閑暇時間。而且如果工作人員外出,想訪問公司內部文件,就比較麻煩了,所以如果通過第三方服務器來提供中轉服務,進而穿透內網,就可以方便快捷地不受時間和地點限制地維護和訪問企業內計算機。
2.2 遠程操作的實現方式
遠程控制實現的思路不外乎兩種,要么是遠程截圖發送,要么是下載內核層次上服務端的運行狀態在進行解析,指令在客戶端執行。第二種方法乍一看上去十分節約流量,而且權限比較高,但是它和第一種方法比起來有一個致命缺點――上手難,對操作系統要求嚴苛。雖然第一種方式數據流量很大,但是非常直觀,而且可以執行好,特別是在中小型企業環境中,員工使用的設備多種多樣,操作系統覆蓋了包括但不限于Windows、MacOS、Linux、Ubuntu、iOS和Android,所以第二種方案幾乎無法實現,只能選用第一種方案。
2.3 通訊模塊
眾所周知TCP協議的安全性是很高的,通過三次報文的互換來實現握手,而且該協議的容量更大,較之UDP來說性能更好。但是UDP雖然不安全,容量小,但響應速度很快,所以可以將數據按安全要求的不同分開,一組是要保證安全可靠的控制命令,另一組是圖像數據、文件數據和握手數據。前者用TCP,而后者使用UDP。
2.4 數據加密
常見的加密法中AES和RSA算法安全系數最高,其中RSA算法是非對稱算法,暴力破解難度很大,所以可以使用RSA作為控制命令的加密,然后使用AES為文件傳輸加密。
另一方面,為了防止盜用登陸信息,可以將服務端與客戶端通過數字秘鑰綁定,服務端僅受控于主機和1臺客戶機,由于服務端綁定客戶端,所以客戶端只要進行本地驗證即可登陸服務器,而不必先連網后登陸。
2.5 圖像壓縮
畫面的傳輸是整個遠程控制過程中最占用帶寬的部分,因為人眼的刷新率是24Hz,所以服務端的畫面捕捉頻率一般都是25Hz,加上桌面面積太大,默認的色彩保真度又高,所以在傳輸服務端畫面之前必須對顯示輸出數據進行優化。常見的優化算法是動態差量傳輸,通過對比來確定非活躍區域,然后使非活躍高度失真,是活躍區域降低失真,一方面保障了流暢度,一方面保障了視野的清晰度。但是這個算法還是會多算和少算一些區域,于是這里給出了一種優化方案,就是將顏色配置為16位,以動態差量法為主,輔以對頂置窗口的識別和對鼠標活動范圍的識別。將頂置窗口之外的內容失真,具體失真方法可見下圖
其中需要注意的是這里的鼠標活躍區域是指以鼠標為中心的面積為屏幕10%的矩形框,也就是說和系統自帶放大鏡功能類似,如果鼠標移出頂置窗口區域,去看其他地方那么鼠標所到之處也將有較高的保真。這樣一來就能在保證看清內容的前提下進一步壓縮帶寬的占用。
2.6 操作界面
可以說服務端和客戶端的桌面分辨率一樣的情況幾乎沒有,所以不得不考慮如何在小屏幕上顯示大屏幕的內容這個問題。常見的解決方法有滾動條法和縮放法,滾動條法是像瀏覽大面積網頁一樣需要拖動滾動條或者像即時戰略游戲那樣放到屏幕邊緣自動挪動。縮放法則是強制將服務端的屏幕分辨率壓縮到客戶端的屏幕內,這樣原內容就會變得很小不好辨認。有一種方案可以解決這兩者的問題――強制減小服務端分辨率,使之與客戶端一致,而其本身的屏幕并不用顯示。這樣就能保證顯示完整且內容可辨認度高。
2 結束語
本遠程控制軟件在傳統的方法和算法上加入了一些新的思考,部分功能還不是很完善,有待日后的不斷調試和不斷完善,從而提高用戶體驗。
參考文獻
[1] 胡海波.基于windows的遠程控制軟件設計實現[D].山東大學,2012.
[2] 阮麗紅.基于Windows的遠程控制軟件設計與實現[D].鄭州大學,2008.
[3] 佘健,竇麗華,陳杰.基于TCP/IP協議的計算機遠程控制軟件的設計與實現[A].中國自動化學會控制理論專業委員會.第二十二屆中國控制會議論文集(下)[C].中國自動化學會控制理論專業委員會,2003(4).
[4] 熊英,程玉,李軍.遠程控制程序設計[J].湖北工業大學學報,2006(4):127-129.
[5] 張莉.肖彥剛.Windows XP系統中的遠程控的實現[J].科協論壇(下半月),2007(10):103+114.
關鍵詞:遠程控制;PcAnywhere;VNC;java;客戶機;服務器
中圖分類號:TP393.1 文獻標識碼:A 文章編號:1672-3791(2011)02(c)-0000-00
通過一些軟件(如PcAnywhere,VNC等)可以實現遠程控制功能,通過共享桌面對遠程主機做一些想執行的操作,如同控制本地的計算機一樣。通過遠程控制的技術可以輕松對遠程電腦進行維護、監控與排除故障,這種技術具有很好的應用和開發前景。跨平臺性是java語言的顯著特點,因此通過Java語言來編寫的遠程控制軟件實用性更加廣泛。本文中,將介紹遠程控制的原理、實現局域網遠程控制的常用方法以及如何利用Java實現局域網遠程控制。
1 遠程控制的原理
遠程控制的原理是:首先控制端和被控制端均連接到網絡,遠程被控制端接收控制端發送過來的身份驗證以及連接請求,倘若能夠通過驗證,便可以實現連接,同時將驗證通過和已建立連接的信息發送到控制端。控制端就可以通過控制端程序或者將要執行的指令發送到遠程主機,而被控端則執行指令,把鼠標、鍵盤、刷新屏幕發送到控制端程序,經過控制端處理后把信息顯示給用戶看,這樣,用戶對遠程主機的操作就像在本地計算機上操作一樣。通過驗證以后,兩地計算機才能連接在一起,并最終實現遠程控制。
遠程控制軟件常用的模式的C/S模式。在使用控制軟件前,先將控制端程序安裝在控制端主機上,把被控制端程序安裝到被控端主機上。這個控制過程是:首先在控制端執行控制端程序,建立遠程服務,然后借助遠程服務,發送遠程控制命令,控制被控端主機,通過遠程控制輕松操作遠程主機上的所有應用程序,這種遠程控制方式是基于遠程服務的。
2 局域網遠程控制的常用方法
局域網遠程控制可謂方法眾多,除了系統自帶遠程控制功能外,市場上有很多利用java編寫的遠程控制軟件,通過他們可以輕松控制局域網內的任何一臺電腦。局域網遠程控制的實現主要有如下方法:
2.1 系統自帶功能實現遠程控制
Windows XP系統自身具備遠程控制的功能,稱為“遠程協助”,操作十分簡單。用戶通過遠程協助功能可實現遠程控制,具體做法是通過MSN Messenger發送協助請求,Messenger中的聯系人在接到請求后,倘若聯系人同意請求,用戶與聯系人便可以建立連接,實現遠程協助,在此過程中,聯系人所使用的計算機完全由用戶控制,通過遠程協助功能實現遠程控制,用戶可對受控端計算機進行任何操作。
2.2 PcAnywhere
通過PcAnywhere工具實現局域網的遠程控制,這款不錯的工具可使兩地計算機建立連接,并協同工作。PcAnywhere的使用方法十分簡單,在控制端與被控制端計算機上分別安裝好該軟件,便可輕松實現遠程控制。
2.3 VNC
VNC (Virtual Network Computing)是虛擬網絡計算機的縮寫,由AT&T的歐洲研究實驗室開發而成的遠程控制軟件,至今仍被廣泛使用,高效使用是其最大的特點,具有較強的遠程控制能力,主要基于Linux和UNIX操作系統,它的實用性超過了任何一款基于MAC和Windows的遠程控制軟件。
3通過Java實現局域網遠程控制
通過PcAnywhere和VNC軟件都可以很容易的實現局域網遠程控制,這兩款軟件都是利用Java編寫的。JAVA語言具有良好的跨平臺性,用其編寫的軟件也是具有“一次編寫,各處運行”的特點。因此,利用Java 實現遠程控制有很廣的實用性。
3.1 總體設計
遠程控制的交互過程是:首先,屏幕圖像由被控制端程序發送到控制端,控制端向被控制端發送鍵盤和鼠標操作指令,然后在被控制端執行操作命令。被控制端發送出來的屏幕圖像,控制端程序需要不斷的接收,然后在控制端中顯示出來,捕捉到控制端的鍵盤和鼠標時間,發送到被控制端。雙方整個交互過程的模型(圖3.1)
3.2程序設計實現要點
利用Java實現局域網遠程控制,在進行程序設計時需要注意的要點有:鼠標和鍵盤事件的獲取及操作模擬、屏幕圖象的壓縮/解壓縮、屏幕圖象及指令的傳輸等。
3.3 Java Robot對象實現遠程服務器的控制
(1)實現原理
首先,通過Robot截取被控端桌面圖像,并利用socket通信發送到控制端。
其次,主控端顯示被控端桌面,并且把基于被控端圖像上的鍵盤,鼠標事件通過socket通信傳給被控端。
最后,被控端響應主控端的鼠標鍵盤事件。
(2)實現過程
主控端和被控端通過UDP控端向主控端傳遞圖像、圖像顯示,鼠標,鍵盤監聽、被控端接收,響應鍵盤鼠標事件等通過編寫java代碼來實現。
在實現過程中,需要頻繁地、不間斷地獲取、壓縮和傳輸被控制端屏幕圖像以及在控制端接收、解壓縮和顯示屏幕圖像,因此,可以通過多線程技術來分別進行處理。這里就不做詳解了。
4結束語
通過這次對局域網遠程控制實現過程的研究,深入闡明了遠程控制的原理,通過控制軟件實現局域網遠程控制的過程,以及利用java實現局域網遠程控制。與其他語言編寫的控制軟件相比,用java語言編寫的控制軟件具有“一次編寫,各處運行”的特點,因此具有更廣的使用性。這次研究也存在不足之處,對利用java實現局域網遠程控制過程論述不夠全面,以后還有待進一步研究。
參考文獻:
[1]常永昌.一種遠程控制軟件的設計與實現[J].計算機應用.2003,23(3):127-128,131.
[2]張國華.網友電腦遠程控制[J].網友世界合訂本.2004,24(12):277-282.
[3]曾剛,黃永友.前沿網絡應用[M].北京:希望電子出版社.2003,187-192.
所謂遠程控制,是指管理人員在異地通過計算機網絡異地撥號或雙方都接入internet等手段,聯通需被控制的計算機,將被控計算機的桌面環境顯示到自己的計算機上,通過本地計算機對遠方計算機進行配置、軟件安裝程序、修改等工作。遠程喚醒(wol),即通過局域網絡實現遠程開機。
二、遠程控制的概念
一般指通過網絡控制遠端電腦。早期的遠程控制往往指在局域網中的遠程控制而言,這里的遠程不是字面意思的遠距離。隨著互聯網的普及和技術革新,現在遠程控制往往指互聯網中的遠程控制。當操作者使用主控端電腦控制被控端電腦時,就如同坐在被控端電腦的屏幕前一樣,可以啟動被控端電腦的應用程序,可以使用或竊取被控端電腦的文件資料,甚至可以利用被控端電腦的外部打印設備(打印機)和通信設備(調制解調器或者專線等)來進行打印和訪問外網和內網,就像利用遙控器遙控電視的音量、變換頻道或者開關電視機一樣。不過,有一個概念需要明確,那就是主控端電腦只是將鍵盤和鼠標的指令傳送給遠程電腦,同時將被控端電腦的屏幕畫面通過通信線路回傳過來。也就是說,控制被控端電腦進行操作似乎是眼前的電腦上進行的實質是遠程的電腦中實現的不論打開文件,還是上網瀏覽、下載等都是存儲在遠程的被控端電腦中的遠程控制必須通過網絡才能進行。位于本地的計算機是操縱指令的發出端,稱為主控端或客戶端,非本地的被控計算機叫做被控端或服務器端。遠程”不等同于遠距離,主控端和被控端可以是位于同一局域網的同一房間中,也可以是連入internet處在任何位置的兩臺或多臺計算機。
三、技術原理
遠程控制是在網絡上由一臺電腦(主控端remote/客戶端)遠距離去控制另一臺電腦(被控端host/服務器端)的技術,主要通過遠程控制軟件實現。遠程控制軟件工作原理:遠程控制軟件一般分客戶端程序(client)和服務器端程序(server)兩部分,通常將客戶端程序安裝到主控端的電腦上,將服務器端程序安裝到被控端的電腦上。使用時客戶端程序向被控端電腦中的服務器端程序發出信號,建立一個特殊的遠程服務,然后通過這個遠程服務,使用各種遠程控制功能發送遠程控制命令,控制被控端電腦中的各種應用程序運行。
四、技術發展
發展經歷
電腦中的遠程控制技術,始于dos時代,只不過當時由于技術上沒有什么大的變化,網絡不發達,市場沒有更高的要求,所以遠程控制技術沒有引起更多人的注意。但是,隨著網絡的高度發展,電腦的管理及技術支持的需要,遠程操作及控制技術越來越引起人們的關注。遠程控制一般支持下面的這些網絡方式:lan、wan、撥號方式及互聯網方式。此外,有的遠程控制軟件還支持通過串口、并口、紅外端口來對遠程機進行控制(不過這里說的遠程電腦,只能是有限距離范圍內的電腦了)。傳統的遠程控制軟件一般使用netbeui、netbios、ipx/spx、tcp/ip等協議來實現遠程控制,不過,隨著網絡技術的發展,很多遠程控制軟件提供通過web頁面以java技術來控制遠程電腦,這樣可以實現不同操作系統下的遠程控制。
五、遠程控制應用
1.遠程辦公
這種遠程的辦公方式不僅大大緩解了城市交通狀況,減少了環境污染,還免去了人們上下班路上奔波的辛勞,更可以提高企業員工的工作效率和工作興趣。
2.遠程教育
利用遠程技術,商業公司可以實現和用戶的遠程交流,采用交互式的教學模式,通過實際操作來培訓用戶,使用戶從技術支持專業人員那里學習示例知識變得十分容易。而教師和學生之間也可以利用這種遠程控制技術實現教學問題的交流,學生可以不用見到老師,就得到老師手把手的輔導和講授。學生還可以直接在電腦中進行習題的演算和求解,在此過程中,教師能夠輕松看到學生的解題思路和步驟,并加以實時的指導。
3.遠程維護
計算機系統技術服務工程師或管理人員通過遠程控制目標維護計算機或所需維護管理的網絡系統,進行配置、安裝、維護、監控與管理,解決以往服務工程師必須親臨現場才能解決的問題。大大降低了計算機應用系統的維護成本,最大限度減少用戶損失,實現高效率、低成本。
4.遠程協助
任何人都可以利用一技之長通過遠程控制技術為遠端電腦前的用戶解決問題。如安裝和配置軟件、繪畫、填寫表單等協助用戶解決問題。
六、遠程控制安全
盡管遠程訪問工具存在安全問題,不過現在的技術用戶對于遠程訪問支持的需求卻不斷增加。也就是說,it團隊無法不使用遠程控制技術,因為他們要讓客戶和員工滿意,并盡可能提供全天候的遠程支持。利用遠程訪問技術提供離線計算設備支持的同時,也需要注意維護安全和企業管理政策,為此,本文為大家提供五個關鍵要素:
第一要素:制定遠程控制策略
想要有效降低企業遠程訪問的風險,制定遠程控制策略是至關重要的。理想的策略能夠幫助企業確定遠程故障診斷和維護要求的需求,并能根據需求來合理分配花在遠程支持設備上的資金,以及遵守必要的安全規則。理想的策略還能夠列出具體標準來指導it團隊,如果沒有遠程控制安全策略,企業將繼續淪為黑客的獵物,因為現在越來越多的it支持團隊開始使用遠程訪問工具,而黑客則可以利用遠程訪問攻擊企業系統。
第二要素:部署現場解決部署現場解決方案能夠更好的控制安全,另外,對現場設備管理接口的訪問只能通過加密網絡連接來訪問,這樣只有本地控制臺端口和指定網絡段才能訪問,這種設計可以有效防止遠程攻擊者通過遠程訪問網絡獲取對管理功能的未經授權訪問.根據最新安全廠商調查顯示,這種解決方案是最佳安全做法,因為能夠通過限制可能的攻擊方式來有效降低操作系統層漏洞被利用的比率。這種應用模式開始吸引越來越多的企業采用,尤其是大型企業和監管產業的企業。另一個架構方面的考慮因素就是解決方案供應商的商業模式,如果你使用應用服務供應商(asp)提供的應用服務,你的數據和客戶數據就不可避免要經過第三方,這樣做就擴大了合規責任的范圍。確保asp使用的安全性將涉及嚴格的服務水平協議(sla)以及第三方涉及機構定期嚴格的服務供應商審計。在計算解決方案的隱形成本時也要考慮這些審計問題。
第三要素:審核第三方驗證
在調查遠程支持解決方案的安全性時,你也需要權衡第三方驗證問題。有些供應商已經將其軟件提交給了安全審計機構,這些軟件的審計評估結果通常能夠在供應商的網站找到,如果你不能找到解決方案的安全審計數據,可以要求供應商提供給你。對解決方案安全問題的調查絕對不能掉以輕心。
第四要素:確保審計能力
要確保每個遠程支持會話的詳細信息都自動記錄和保存,以符合合規審計要求。持有聊天記錄和文件傳輸記錄能夠極大地簡化審計的流程。此外,對所有系統和ip信息也應該保存,因為這些數據能夠說明哪些設備何時被訪問過。理性情況下,遠程控制解決方案還可以記錄每次會話活動的視頻以提供每次通信的畫面信息。這種能見度以及所有會話詳情的記錄將為審計提供強有力的證據。
關鍵詞:Java;管理系統;遠程控制
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2010)18-5115-03
The Research of Remote Control System Based on Java
XIONG Hai-yan1, HU Rong2
(1.The Food and Drug Administration of Jiangxi Province, NanChang 330029, China; 2.Nanchang Institute Of Technology, Nanchang 330099, China)
Abstract: The system adopts the Java network programming and graphic programming. In the process of research, the thesis united network programming and remote control theory together, which allows the system to achieve the following functions successfully: continuously obtaining the remote computer screen; uploading and downloading the document from the remote computer and the simulation of mouse and keyboard; turning off and restarting the computer.
Key words: Java; management system; remote control
1 概述
隨著時代的進步,計算機在人們的生活中已經得到了普及,在生活的各個方面都可以看到計算機及網絡的應用。網絡技術的不斷發展,也為遠程控制技術的發展創造了條件。遠程控制軟件一般分兩個部分:一部分是客戶端程序Client,另一部分是服務器端程序Server,多數遠程控制軟件把被控端作為服務器,主控端作為客戶端。考慮到在控制過程中,如果把主控端作為客戶端向被控端發送TCP連接請求,容易被防火墻或者殺毒軟件阻止,控制過程就不能成功進行。因此,本文將被控端設計為客戶端,向主控端發送連接請求,建立連接后,主控端向被控端發送遠程控制命令,控制被控端電腦中的各種應用程序運行,被控端對主控端發送來的命令進行處理,并將命令處理結果返回給主控端。遠程控制軟件順應時展的需求,它實用、使用簡便,是非常不錯的軟件。
遠程控制是在網絡上由一臺電腦(主控端Remote)遠距離去控制另一臺電腦(被控端Host)的技術,這里的遠程不是字面意思的遠距離,一般指通過網絡控制遠端電腦,不過,大多數時候我們所說的遠程控制往往指在局域網中的遠程控制而言。
當操作者使用主控端電腦控制被控端電腦時,就好像坐在被控端電腦的屏幕前一樣,可以啟動被控端電腦的應用程序,可以使用被控端電腦的一些基本操作和命令。但是,需要弄清楚的是主控端電腦只是將鍵盤和鼠標的指令傳送給遠程電腦,同時將被控端電腦的屏幕畫面通過通信線路回傳過來。也就是說,我們控制被控端電腦進行操作似乎是在眼前的電腦上進行的,實質是在遠程的電腦中實現的,不論打開文件,還是上網瀏覽、下載等都是存儲在遠程的被控端電腦中的。
2 系統關鍵技術
系統使用的關鍵技術就是Java網絡編程和Java圖形編程。用Java網絡編程實現主控端和被控端的通訊(命令收發、數據傳送),用Java圖形編程完成主控端控制界面的編寫。具體應用如下:
(1) 實現主控端(服務器)與被控端(客戶端)之間的通訊。
用Java Socket來實現。
(2) 用Java采集事件,封裝成消息,用于發送。
在主控端機器上采集事件(一般只不過是鍵盤和鼠標的事件),然后封裝成消息類傳輸到被控端。
(3) 在被控端上重演主控端的動作事件。
在被控端運行client端,接收消息,如果主控端有請求操作的消息,用Robot截下當前屏幕,傳給主控端,主控端顯示被控端的屏幕,是一個位圖;然后接收在這個位圖上的鼠標事件和鍵盤事件,并把鼠標位置(位圖上的坐標換算成對應的屏幕上的坐標)和鍵值送到被控端上,在被控端上重演同樣的事件。
主控端包括的模塊有:消息輸入,命令處理結果顯示模塊,通信模塊。消息輸入模塊負責將用戶界面的事件傳送到通信模塊,通信模塊將命令信息發送到被控端;被控端執行操作后返回的成功或失敗信息交由主控端命令處理結果顯示模塊根據信息的格式進行顯示。
被控端包括的模塊有:通信模塊,命令處理模塊。被控端處于偵聽狀態,一旦接收到合法的連接請求,就開UDP端口,并開啟命令接受線程,建立連接后,通過通信模塊接收主控端發來的命令信息,經命令處理模塊解釋后,并將結果返回到主控端。
3 遠程控制流程
被控端收到主控端的UDP命令:control:TCP Port,獲得主控端開放的TCP端口號。成功連接主控端的TCP端口后,并從中讀取事件對象,接著對事件對象進行類型判斷,如果是鍵盤事件,就對鍵盤事件重演;如果是鼠標事件,就對鼠標事件重演。接著判定控制套接是否關閉,如果關閉,控制結束。否則返回繼續讀取事件。流程如圖1所示。
4 遠程屏幕控制的實現
命令處理的實現就是通過函數調用,調用各個命令處理類。在命令處理中,被控端執行以下操作:發送自己的狀態信息給主控端;建立圖象傳送;開啟控制命令套接字;文件上傳;文件下載;執行DOS命令,獲取執行結果和錯誤流。
開啟屏幕監視線程:
public static void startGetScreen(ClientStatus clientstatus) throws MyException{
ServerSocket server=null;
try {
server = NewRadomSocket.openNewPort();
server.setSoTimeout(Parameter.TCP_TIME_OUT);//設置超時
clientstatus.sendMyOrder(OrderMap.toOrder(OrderMap.SCREEN_SHOW,server.getLocalPort()));//發送命令
Socket socket=server.accept(); //連接
tools.print(socket.getRemoteSocketAddress()+" 已經連接端口:"+socket.getLocalPort()+" 等待連接,進行圖形傳送");
//socket.getInputStream().read();
new GetImageThread(socket).start();//啟動圖象顯示
} catch (Exception e) {
throw new MyException(e.toString());
}
}
實現屏幕控制要完成被控端發送屏幕截圖和主控端接收圖片的工作,該功能的實現中構造了兩個類:SendImage Thread和GetImageThread,
SendImage Thread JavaBean 代碼和說明如下:
/*被控端將Java屏幕"照相機"采集到的圖片壓縮為JPEG文件,發送到主控端*/
public class SendImageThread extends Thread{
……
public void run(){
int i=0;
OutputStream out=null;
JPEGImageEncoder encoder=null; //壓縮為JPEG
try {out = client.getOutputStream(); //獲得TCP套接字流
encoder=JPEGCodec.createJPEGEncoder(out);//將流壓縮為JPEG對象流
} catch (IOException e1) {
e1.printStackTrace();
}
while(true){
image=impv.CopyScreen(); //截取屏幕圖象
encoder.encode(image) ; //向網絡寫入JPEG圖形對像
}
}
GetImage Thread JavaBean 代碼和說明如下:
/*主控端接收JPEG文件,并在畫布上顯示*/
public class GetImageThread extends Thread{
……
public void run(){
BufferedImage image=null;
JPEGImageDecoder de=null;
InputStream in=null;
try {
socket.setReceiveBufferSize(1024); //設置接收緩沖
socket.setSoTimeout(60000); //設置TCP過期時間
in=socket.getInputStream(); //獲取套接字輸入流
de=JPEGCodec.createJPEGDecoder(in); //將輸入流封裝為JPEG對象流
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int wrongtime=0;
while(true){
wrongtime++;
if(wrongtime>=200)break;
image=de.decodeAsBufferedImage(); //對JPEG對象解碼,還原為BufferedImage圖形對象
MainFrame.getInstance().ShowImage(image); //在控制窗口的畫布上顯示圖象
}
}
5 小結
遠程控制軟件的編寫采用成熟的套接字編程,實現了軟件面向設備、面向功能量身定制。能連續獲得被控端機器的屏幕變化;能對對方機器實現文件上傳、下載;能遠程控制對方機器;能重啟,關閉對方計算機。
參考文獻:
[1] 陳慶,飛,姚彪國. 基于Java技術的遠程控制實驗系統開發[J].西安工程大學學報,2008(2).
[2] Tal Liron .Remote-control Java[J]. , 2007(12).
[3] 施博學,王志良,劉冀偉. 基于RTP實現遠程圖像傳輸研究與實現[J].微機計算機,2005(2).
關鍵詞:B/S模式;C/S模式;WebAccess組態軟件;數據匯聚
中圖分類號:TP393文獻標識碼:A文章編號:1009-3044(2015)27-0167-02
前言:
為了進一步提升船閘綜合養護管理的能力,使船閘主動養護模式得到更深更廣的延伸,我所利用三線船閘擴容工程這個契機,通過內部局域網WEB平臺,采用B/S網絡架構配合AdvantechWebAccess組態控制軟件,實現我所三座船閘的電氣控制集中管理,實時進行遠程診斷和系統遠程維護,使船閘養護管理實現了智能化、標準化、系統化。過去船閘電氣控制系統猶如一個個信息孤島,無法互連互通,信息無法做到共享,發生異常情況養護管理人員無法第一時間掌握現場信息,現在通過B/S網絡架構平臺的高效性和擴展性,給船閘養護管理人員日常維護提供了便利性,減輕了現場檢查和維護工作量,極大地提高了故障處理效率,保證了船閘機電設備的正常運行,確保了船閘安全暢通,為蘇北運河實現電氣控制遠程診斷系統的創新管理打下了良好的基礎。現將有關情況介紹如下:
1、不同網絡架構下的電氣控制模式
1.1改造前電氣控制系統網絡結構(見圖1)如圖1所示,一、二線船閘控制系統采用PLC集中分散控制、C/S網絡訪問模式,位于閘首上左機房控制中心的PLC,通過工業以太網交換機與集控中心和上下游閘首調度亭的上位機形成星形連接,上下游閘首的上位機通過組態王控制軟件配合運行版加密狗訪問集控中心的控制服務器,實現數據的采集和共享。
1.2改造后電氣控制系統網絡結構(見圖2)如圖2所示,三線船閘控制系統采用分布式控制、B/S網絡訪問模式,上下游各有一套PLC,每套PLC系統由一個主站和一個遠程站組成。其中,主站采用SchneiderTSXQuantum平臺PLC,遠程站采用SchneiderTSXQuantum平臺RIO,兩者之間通過專用電纜相連。另外,在船閘上、下游閘首機房設有用于現地分散控制操作的計算機和現地操作臺,最后采用冗余光纖工業以太網交換機把控制系統網絡組成環型結構,網絡通信協議采用TCP/IP+以太網協議,通過100Mbps全雙工交換式單模光纖環網實現船閘監控中心監控主機和上、下游閘首機房現地PLC之間的網絡通信。綜上所述,由于我所一、二線船閘與三線船閘的電氣系統控制模式存在差異,現在三座船閘需要實現統一集中管理,實現核心數據的互訪與共享,基于這個因素,我們采用了一臺三層交換機,將一線、二線和三線船閘控制局域網進行聯接,實現了不同控制網段的互訪,滿足了WebAccess組態控制軟件遠程管理時需要的數據和參數。(見圖3)
2、WebAccess組態控制軟件遠程管理
AdvantechWebAccess是一款基于IE瀏覽器實現人機界面(HMI)和監控及資料采集(SCADA)的軟體,可以很方便的以HTTP超鏈接的方式被管理系統調用,將WebAccess的監控頁面嵌入管理系統當中,實現與上層管理控制系統的無縫鏈接。通過此控制軟件后,我們可以在任何地方通過控制web平臺,在PC終端上實現三座船閘的電氣控制集中管理,達到遠程診斷的目的。舉個例子,我們養護管理人員可以在養護中心電視大屏上,實時的監測三座船閘的電氣設備運行狀態,掌握歷史運行數據和報警參數,實現遠程控制和故障診斷的目的。(見圖4)
3、電氣控制遠程管理的運行效果
我所自從將電氣控制遠程管理系統應用到實際工作中以來,對養護管理工作起到極大的幫助,使機電養護管理的工作效率和故障應急處理能力得到了大幅度提高,主要效果體現在如下幾個方面:1)易于維護,工作效率得到提高過去C/S控制模式中客戶端需要安裝各種軟件和程序,現在的控制管理系統采用了B/S網絡架構模式,系統中只有一臺數據服務器,所有客戶端PC均采用瀏覽器訪問,客戶端不需要安裝任何軟件程序,這樣就給日常系統維護提高了便利,可以更加合理科學的安排養護管理計劃,提高了工作管理效率。2)實時現場監控和遠程管理系統具有與監控節點同步的監控能力,所有的監控畫面都擁有實時數據的顯示,養護管理人員可以通過遠程管理系統在養護管理中心第一時間掌握三座船閘的閘閥門、電氣設備、高低壓供配電等相關的數據信息;及時了解設備運行的狀態;實現電氣系統遠程控制的管理。3)快速診斷,提高應急處理能力養護管理人員通過監控畫面、故障報警代碼、歷史運行數據曲線圖快速的判斷機電設備的故障點,分析產生故障的原因,并且攜帶相關設備的備品備件第一時間趕往故障點,及時的修復好故障,避免了因機電故障造成船閘停航事件的發生,保證了船閘的安全暢通。4)養護管理智能化由于該系統通過B/S網絡架構平臺運行,系統全部的工程組態、數據庫設置、畫面制作和軟件管理都可以在本地或異地使用瀏覽器完成。當現場出現異常狀況或需要及時修改時,養護管理人員無論身在何處,都可以通過網絡及時調整,讓系統維護工作變得及時、高效,給養護管理工作提供了空間上的便利。5)養護管理形式多樣化改變了過去只有到現場,才能解決問題的維護模式。將現場養護和遠程集中維護有機地結合起來,豐富了養護管理模式;同時借助強大的網絡平臺實現數據信息的快速傳輸和集中處理,是被動養護向主動養護模式轉變的直觀表現。
4、船閘電氣控制管理的未來發展趨勢