版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 編號:04</b></p><p> 《軟件工程》課程設(shè)計</p><p> 題目:基于CS模式遠程監(jiān)控系統(tǒng)軟件的實現(xiàn)</p><p> 系 (院):信息工程學院</p><p> 專 業(yè):計算機科學與技術(shù)</p><p> 班 級:計科0901
2、B</p><p> 組 長:謝永路</p><p> 組 員:趙春樂 胡園 劉燕三</p><p><b> 指導教師:王娟娟</b></p><p><b> 目錄</b></p><p> 一、可行性分析報告4</p><p
3、><b> 引言4</b></p><p> 1.2 可行性分析的前提4</p><p> 1.3對現(xiàn)有系統(tǒng)的分析5</p><p> 通過綜合各個方面的資料,我們了解到基于BS模式的系統(tǒng)尚未成形普及,這說明基于BS模式的系統(tǒng)的需求很大!5</p><p> 1.4 所建議的系統(tǒng)5</p
4、><p> 可以使用CS模式,但這使用起來有一定的局限性,不能滿足用戶的需要!也不符合Intenet的快速發(fā)展的需要!5</p><p> 1.5 可選擇的其他系統(tǒng)方案5</p><p> 如果CS模式開發(fā)出現(xiàn)問題,我們可以現(xiàn)開發(fā)BS模式,雖然與我們的期望南轅北轍,但可以把這看成第一個版本,這樣也可以為CS模式墊定基礎(chǔ)!這只是一種方案!5</p>
5、<p> 1.6 投資及效益分析5</p><p> 開發(fā)這款軟件投資較小,我們需要的只是在電腦上進行編程,投資較??!而且這個系統(tǒng)又是當今社會所需要的,他能滿足我們各個方面的需求!所以未來的效益也是非常可觀的!5</p><p> 1.7 社會因素方面的可行性5</p><p><b> 1.8 結(jié)論5</b>&l
6、t;/p><p> 二、 需求規(guī)格說明書6</p><p> 1.概述(Summary)6</p><p> 2.問題初始分析(Early Analysis)7</p><p> 3.目標系統(tǒng)功能需求(Function of Target System)7</p><p> 4.目標系統(tǒng)性能需求(Perf
7、ormance of Target System)7</p><p> 5.目標系統(tǒng)界面與接口需求(Interface of Target System)8</p><p> 6.目標系統(tǒng)其他需求(Other Requirements of Target System)8</p><p> 7.目標系統(tǒng)假設(shè)與約束條件(Suppose and Restri
8、ction of Target System)9</p><p> 三、總體設(shè)計說明書9</p><p> 1.1 遠程監(jiān)控的背景知識10</p><p> 1 2 遠程監(jiān)控軟件的原理10</p><p> 2 系統(tǒng)需求分析及理論基礎(chǔ)10</p><p> 2.1 系統(tǒng)需求分析10</p&g
9、t;<p> 2.2 系統(tǒng)開發(fā)原理及關(guān)鍵技術(shù)11</p><p> 2.3 系統(tǒng)的開發(fā)平臺11</p><p> 2.4 編程運行環(huán)境13</p><p> 四、詳細設(shè)計說明書13</p><p> 3.1 系統(tǒng)總體結(jié)構(gòu)設(shè)計和分析13</p><p> 3.2 程序流程及分析14&
10、lt;/p><p> 五、源程序清單18</p><p> 4.1 系統(tǒng)主要模塊設(shè)計18</p><p> 4.2 連續(xù)獲得被監(jiān)控端機器屏幕變化功能實現(xiàn)18</p><p><b> 六、用戶手冊22</b></p><p> 1.前言(Preface)22</p>
11、<p> 2.功能(Function)23</p><p><b> 七、測試報告24</b></p><p> 1. 概述(Summary)24</p><p> 2. 組件測試(Module Test)24</p><p> 3.功能測試(Function Test)25</p&g
12、t;<p> 4. 測試結(jié)論(Test Verdict)25</p><p> 5 系統(tǒng)運行及測試結(jié)果28</p><p> 5.1 測試方法28</p><p> 5.2 測試環(huán)境28</p><p> 5 3 系統(tǒng)運行實例28</p><p> 八、軟件開發(fā)總結(jié)報告30<
13、/p><p><b> 參考文獻31</b></p><p><b> 一、可行性分析報告</b></p><p><b> 引言</b></p><p> 1.1.1 編寫目的</p><p> 看這個方案是否可行,是否滿足經(jīng)濟可行性,操作可行
14、性,和技術(shù)可行性,只有各個方面都可行,才可以進行下面軟件的開發(fā),否則以后做的所有工作都白搭!</p><p> 項目的目標:該項目的目標是能夠?qū)崿F(xiàn)B/S模式的遠程監(jiān)控,對局域網(wǎng)乃至整個網(wǎng)絡(luò)都能夠?qū)崿F(xiàn)遠程監(jiān)控,讓用戶在任何一個地方都能夠?qū)μ崆霸O(shè)定的區(qū)域進行監(jiān)控和管理。</p><p><b> 1.1.2 背景</b></p><p> 目
15、前所有的系統(tǒng)都是在CS模式下完成,基于BS模式的遠程監(jiān)控系統(tǒng)尚未出現(xiàn),在互聯(lián)網(wǎng)發(fā)展的大背景下,基于CS模式的遠程監(jiān)控系統(tǒng)也就應(yīng)用而生!</p><p><b> 1.1.3 定義</b></p><p> 基于BS模式的遠程監(jiān)控系統(tǒng):就是讓用戶在任何地方,通過已經(jīng)聯(lián)網(wǎng)的瀏覽器,對提前設(shè)定的區(qū)域進行監(jiān)控和管理!</p><p> 用戶PC機
16、:一臺普普通通的電腦,具體點這里指能夠上網(wǎng)的電腦。</p><p> 普通攝像頭:他不具有網(wǎng)絡(luò)攝像頭的功能,只是有某種接口的普通攝像頭。</p><p> 后臺服務(wù)器:他對用戶數(shù)據(jù)進行分析與處理。管理真?zhèn)€網(wǎng)站。</p><p> 1.1.4 參考資料</p><p> <1>《web程序設(shè)計》(美)Robert W.Seb
17、esta著</p><p> <2>《JSP基礎(chǔ)教程》耿祥義 張躍平 編著</p><p> <3>《軟件工程導論》(第五版) 張海藩 編著</p><p> <4>《UML 基礎(chǔ)、案例與應(yīng)用》(第三版)(美)Joseph Schmuller 著</p><p> 1.2 可行性分析的前提</
18、p><p><b> 1.2.1 要求</b></p><p> 他必須的完成以下功能:</p><p> ?。?)、視頻數(shù)據(jù)的實時傳輸</p><p> ?。?)、視頻數(shù)據(jù)的存盤與管理</p><p> (2)、視頻數(shù)據(jù)的分析以及圖像數(shù)據(jù)的分析</p><p><
19、b> 對現(xiàn)有系統(tǒng)的分析</b></p><p> 通過綜合各個方面的資料,我們了解到基于BS模式的系統(tǒng)尚未成形普及,這說明基于BS模式的系統(tǒng)的需求很大!</p><p> 1.4 所建議的系統(tǒng)</p><p> 可以使用CS模式,但這使用起來有一定的局限性,不能滿足用戶的需要!也不符合Intenet的快速發(fā)展的需要!</p>
20、<p> 1.5 可選擇的其他系統(tǒng)方案</p><p> 如果CS模式開發(fā)出現(xiàn)問題,我們可以現(xiàn)開發(fā)BS模式,雖然與我們的期望南轅北轍,但可以把這看成第一個版本,這樣也可以為CS模式墊定基礎(chǔ)!這只是一種方案!</p><p> 1.6 投資及效益分析</p><p> 開發(fā)這款軟件投資較小,我們需要的只是在電腦上進行編程,投資較??!而且這個系統(tǒng)又是當
21、今社會所需要的,他能滿足我們各個方面的需求!所以未來的效益也是非常可觀的!</p><p> 1.7 社會因素方面的可行性</p><p> 我們從三個方面分析該項目的可行性:</p><p> 在操作方面:首先,在全校范圍內(nèi)沒有該系統(tǒng),或類似于該系統(tǒng)的東西出現(xiàn)。而我們又非常的渴望這樣的系統(tǒng)。比如,對于機房,機房管理員或任課教師就不用去機房,就能對整個機房的情
22、況進行監(jiān)控。對于宿舍或者其他居住場所,我們可以隨時隨地的通過網(wǎng)絡(luò),對這些地方進行遠程監(jiān)控和管理。也就是說,用戶只需要通過瀏覽器,輸入自己的賬號和密碼,就可以實現(xiàn)對現(xiàn)場設(shè)備狀態(tài)的安全監(jiān)控!在操作上是行的通的。</p><p> 在技術(shù)方面:我們采用java web程序設(shè)計,它是基于JAVA面向?qū)ο蟮?。并且我們采用學習過的三種框架技術(shù),實現(xiàn)整個網(wǎng)絡(luò)編程。這些技術(shù)都是我們學習過,并且都已經(jīng)掌握的。我們會涉及到圖像識別
23、,數(shù)據(jù)的分析與處理等這些前沿的東西。我們相信,在技術(shù)上我們完全可以做到。</p><p> 在經(jīng)濟方面:我們不需要學校的補助,我們小組每個人都有電腦,如果可以的話,我們也能去機房,完成項目的編碼與測試??梢哉f我們不需要什么費用,就可以完成這個項目。所以我們共同認為經(jīng)濟上絕對不是一個問題!</p><p><b> 1.8 結(jié)論</b></p><
24、;p> 開發(fā)這個系統(tǒng)是可行的,不管從我們小組個人能力,還是從未來發(fā)展方向,都能為我們在web方向的學習,墊定基礎(chǔ)!</p><p> 二、 需求規(guī)格說明書</p><p> 完成人: 謝永路 </p><p> 1.概述(Summary)</p><p> 1.1項目的目的與目標(Purpose and Aim of
25、Project)</p><p> 項目名稱是:基于web技術(shù)的遠程安全監(jiān)控系統(tǒng)。項目的目的是用戶可以在任何一個地方,通過網(wǎng)絡(luò)就能對提前設(shè)置的區(qū)域進行監(jiān)控和管理,而不用去監(jiān)控室里,這樣非常的方便,他是隨著Internet發(fā)展,應(yīng)用而生,他是基于B/S模式的,而傳統(tǒng)的監(jiān)控系統(tǒng)是基于C/S模式。</p><p> 項目的目標:該項目的目標是能夠?qū)崿F(xiàn)B/S模式的遠程監(jiān)控,對局域網(wǎng)乃至整個網(wǎng)絡(luò)
26、都能夠?qū)崿F(xiàn)遠程監(jiān)控,讓用戶在任何一個地方都能夠?qū)μ崆霸O(shè)定的區(qū)域進行監(jiān)控和管理。</p><p> 整個該系統(tǒng)的工作流程如上圖所示,服務(wù)器從攝像頭獲得數(shù)據(jù),PC機能夠訪問服務(wù)器,并可以得到實時數(shù)據(jù)和已經(jīng)存盤的數(shù)據(jù)。并且用戶也可以通過服務(wù)器對遠程攝像頭進行控制。</p><p> 另外系統(tǒng)所實現(xiàn)的功能遠不止這些,他要對后臺服務(wù)器進行全面管理。又類似一個網(wǎng)站的功能。所有的這些都是該項目的目的
27、。</p><p> 1.2 術(shù)語定義(Terms Glossary)</p><p> 用戶PC機:一臺普普通通的電腦,具體點這里指能夠上網(wǎng)的電腦。</p><p> 普通攝像頭:他不具有網(wǎng)絡(luò)攝像頭的功能,只是有某種接口的普通攝像頭。</p><p> 后臺服務(wù)器:他對用戶數(shù)據(jù)進行分析與處理。管理真?zhèn)€網(wǎng)站。</p>&
28、lt;p> 1.3 相關(guān)文檔(Related Documents)</p><p> 說明用戶需求報告的變更,以及可能受變更影響的其他相關(guān)文檔,如:項目開發(fā)計劃和設(shè)計說明書。</p><p> <1>《web程序設(shè)計》(美)Robert W.Sebesta著</p><p> <2>《JSP基礎(chǔ)教程》耿祥義 張躍平 編著<
29、/p><p> <3>《軟件工程導論》(第五版) 張海藩 編著</p><p> <4>《UML 基礎(chǔ)、案例與應(yīng)用》(第三版)(美)Joseph Schmuller 著 </p><p> <5>《Java核心技術(shù)》Cay S.Horstmann G
30、ary Cornell 編著</p><p> <6>《數(shù)據(jù)庫系統(tǒng)概論》王珊 薩師煊 著</p><p> 2.問題初始分析(Early Analysis)</p><p> 我們對整個項目進行全面分析以后,發(fā)現(xiàn)該項目面臨的問題如下:</p><p> ?。?)、如何把攝像頭中的數(shù)據(jù)傳到服務(wù)器中,并每隔一段時間進行保存,如果
31、是多個攝像頭,又該如何傳輸,這涉及到多線程并發(fā)的操作。</p><p> ?。?)、用戶如何通過網(wǎng)絡(luò)從服務(wù)器上獲得數(shù)據(jù),以及獲得的是實時數(shù)據(jù)。如果該用戶又多個攝像頭,又該獲得每個攝像頭中的數(shù)據(jù)。</p><p> ?。?)、后臺服務(wù)器,如何管理。</p><p> ?。?)、用戶如何通過服務(wù)器對遠程攝像頭進行控制。</p><p> 2.1
32、 場景描述(Scene Description)</p><p> 用戶所處的位置可以是任何一個地點,首先用戶的電腦必須能夠上網(wǎng)。也就是說能夠通過瀏覽器進行訪問,用戶不需要安裝任何軟件。</p><p> 用戶必須在某個區(qū)域配置有攝像頭,該攝像頭并且能夠連接到服務(wù)器中去。</p><p> 2.2 初始功能提?。‥arly Function Distill)&
33、lt;/p><p> ?。?)、視頻數(shù)據(jù)的實時傳輸</p><p> ?。?)、視頻數(shù)據(jù)的存盤與管理</p><p> ?。?)、視頻數(shù)據(jù)的分析以及圖像數(shù)據(jù)的分析</p><p> 3.目標系統(tǒng)功能需求(Function of Target System)</p><p> 3.1 功能需求分析(Function An
34、alysis)</p><p> 創(chuàng)建用例模型與域模型,要求采用用例表進行用例規(guī)約描述,必要時采用活動圖進行檢驗。</p><p> 4.目標系統(tǒng)性能需求(Performance of Target System)</p><p> 在B/S模式下采用傳統(tǒng)的三層體系結(jié)構(gòu)來設(shè)計監(jiān)控組態(tài)軟件,并不能直接實現(xiàn)與被控對象進行數(shù)據(jù)通信,因此基于Web技術(shù)的監(jiān)控組態(tài)軟件采
35、用四層體系結(jié)構(gòu)進行設(shè)計,如圖2所示。它是在一般的三層體系結(jié)構(gòu)的基礎(chǔ)上增加了控制層,用來實現(xiàn)Web服務(wù)器與被控對象的通信,進一步控制被控對象。這樣既充分利用了現(xiàn)有的網(wǎng)絡(luò)資源和工業(yè)現(xiàn)場資源,也使得兩者有機地結(jié)合在一起,達到了Web服務(wù)器與現(xiàn)場設(shè)備通過現(xiàn)場總線進行遠程通信的目的。</p><p> 4.1 時間要求(Time Request)</p><p><b> 如:<
36、/b></p><p> ?。?)響應(yīng)時間,如查詢的最長等待時間。</p><p> ?。?)更新處理時間,如記賬的最長時間。</p><p> (3)數(shù)據(jù)的轉(zhuǎn)換和傳送時間,如遠程數(shù)據(jù)傳輸?shù)臅r間要求。</p><p><b> ?。?)解題時間。</b></p><p> 以上的時間要求
37、,我們會控制在2s內(nèi)完成。可能這個時間有些長,但是必須考慮到,網(wǎng)絡(luò)的流量以及網(wǎng)絡(luò)阻塞情況。就好比你上網(wǎng)看視頻,如果網(wǎng)速很慢,你等的時間會很長些,如果網(wǎng)速快,你可能不用等很長時間。實時視頻的傳輸速率也和網(wǎng)絡(luò)狀況有關(guān)。</p><p> 4.2 空間要求(Space Request)</p><p><b> 如:</b></p><p>
38、(1)支持的終端數(shù)。</p><p> (2)支持的并行操作的使用者數(shù)。</p><p> (3)處理的文件和記錄數(shù)。</p><p> ?。?)處理任務(wù)的數(shù)量。</p><p> ?。?)對輸入和輸出數(shù)據(jù)的精度要求。</p><p> ?。?)對處理和傳輸過程中的精度要求。</p><p>
39、; 5.目標系統(tǒng)界面與接口需求(Interface of Target System)</p><p> 5.1 界面需求(Interphase Requirement)</p><p> 界面的原則要求,如方便、簡潔、美觀、一致等。整個系統(tǒng)的界面風格定義,某些功能模塊的特殊的界面要求。</p><p> ?。?)輸入設(shè)備:鍵盤、鼠標、條碼掃描器、掃描儀等;&
40、lt;/p><p> ?。?)輸出設(shè)備:顯示器、打印機、光盤刻錄機、磁帶機、音箱等;</p><p> (3)顯示風格:圖形界面、字符界面、IE界面等;</p><p> ?。?)顯示方式:1024*768、640*480等;</p><p> ?。?)輸出格式:顯示布局、打印格式等。</p><p> 我們設(shè)計的界面
41、一定要達到美觀,易懂,并且會有相應(yīng)的提示說明。在輸入、輸出設(shè)備上,沒有太大的要求。該系統(tǒng)采用的顯示風格是IE界面。至于顯示方式,他會根據(jù)用戶電腦的分辨率進行調(diào)節(jié),以適應(yīng)任何形式的顯示方式。在輸出格式方面,該系統(tǒng)會兼顧各個方面,我們的輸出格式會達到形式多樣化。</p><p> 總之,他會讓用戶看著舒心,用著放心。任何人都可以使用。</p><p> 5.2 接口需求(Interface
42、 Requirement)</p><p> 與其他系統(tǒng)的接口,如監(jiān)控系統(tǒng)、控制系統(tǒng)、銀行結(jié)算系統(tǒng)、稅控系統(tǒng)、財務(wù)系統(tǒng)、政府網(wǎng)絡(luò)系統(tǒng)及其他系統(tǒng)等。</p><p> ?。?)與系統(tǒng)特殊外設(shè)的接口,如CT機、磁共振、柜員機(ATM)、IC卡、盤點機等。</p><p> ?。?)與中間件的接口,要列出接口規(guī)范、入口參數(shù)、出口參數(shù)、傳輸頻率等。</p>
43、<p> 應(yīng)在此列舉出所有的外部接口名稱、接口標準、規(guī)范。外部接口列表,如表2-3所示。</p><p> 6.目標系統(tǒng)其他需求(Other Requirements of Target System)</p><p> ?。?)、統(tǒng)進行擴展、該系統(tǒng)會對區(qū)域人員進行圖像辨別,數(shù)據(jù)分析。會判斷入境人員的身份,并及時做出相應(yīng)的處理。</p><p> ?。?/p>
44、2)、用戶信息的安全保護。</p><p> 6.1 安全性(Security)</p><p> 用戶的賬號,該系統(tǒng)會做到最高級別的保護。</p><p> 遠程監(jiān)控系統(tǒng)會利用新技術(shù)全面的保護用戶賬號的安全。盡量會保證用戶信息的保密性。及時用戶的賬號外漏,該系統(tǒng)也會采用相應(yīng)的措施,進一步保護!</p><p> 6.2 可靠性(De
45、pendability)</p><p> 系統(tǒng)能夠穩(wěn)定可靠地運行,能夠防止外界的一切干擾,穩(wěn)定性方面相當優(yōu)秀!</p><p> 6.3 靈活性(Agility)</p><p> 該系統(tǒng)在視頻分析,圖像數(shù)據(jù)分析,攝像頭處理時想當靈活的,他采用人性的設(shè)計方式,按照人的思維處理問題。并且用戶可以通過網(wǎng)絡(luò)對遠程的攝像頭進行管理,這些都是該系統(tǒng)靈活性的體現(xiàn)。方便用
46、戶的操作!</p><p> 6.4 特殊需求(Special Requirements)</p><p><b> 如:</b></p><p> ?。?)進度需求:系統(tǒng)的階段進度要求。</p><p> ?。?)運行環(huán)境需求:平臺、體系結(jié)構(gòu)、設(shè)備要求。</p><p> ?。?)培訓需求:
47、用戶對培訓的需求,是否提供多媒體教學光盤。</p><p> (4)推廣需求:推廣的要求,如在上百個遠程部門推廣該系統(tǒng),是否要有推廣的支持軟件。</p><p> 7.目標系統(tǒng)假設(shè)與約束條件(Suppose and Restriction of Target System)</p><p> 假設(shè)與約定條件是對預(yù)計的系統(tǒng)風險的描述, 如:</p>
48、<p> ?。?)法律、法規(guī)和政策方面的限制。</p><p> ?。?)硬件、軟件、運行環(huán)境和開發(fā)環(huán)境方面的條件和限制。</p><p> ?。?)可利用的信息和資源。</p><p> ?。?)系統(tǒng)投入使用的最晚日期。</p><p><b> 三、總體設(shè)計說明書</b></p><
49、p> 遠程監(jiān)控技術(shù),始于DOS時代,因為當時網(wǎng)絡(luò)不發(fā)達,這門技術(shù)沒有得到很多重視,但是隨著網(wǎng)絡(luò)的高度發(fā)展,電腦的管理及技術(shù)支持的需要,遠程監(jiān)控技術(shù)越來越引起人們的關(guān)注。</p><p> 網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,也為遠程監(jiān)控技術(shù)的發(fā)展創(chuàng)造了條件。遠程監(jiān)控軟件一般分兩個部分:一部分是客戶端程序Client,另一部分是服務(wù)器端程序Server,多數(shù)遠程監(jiān)控軟件把被監(jiān)控端作為服務(wù)器,主控端作為客戶端。考慮到在監(jiān)控
50、過程中,如果把主控端作為客戶端向被監(jiān)控端發(fā)送TCP連接請求,容易被防火墻或者殺毒軟件阻止,監(jiān)控過程就不能夠成功進行。因此,本畢業(yè)設(shè)計將被監(jiān)控端設(shè)計為客戶端,向主控端發(fā)連接請求,建立連接后,主控端向被監(jiān)控端發(fā)送遠程控制命令,控制被監(jiān)控端電腦中的各種應(yīng)用程序運行,被監(jiān)控端對主控端發(fā)送來的命令進行處理,并將命令處理結(jié)果返回給主控端。</p><p> 遠程監(jiān)控軟件順應(yīng)時代發(fā)展的需求,它實用、使用簡便,是非常不錯的軟件
51、。</p><p> 1.1 遠程監(jiān)控的背景知識</p><p> 遠程監(jiān)控是在網(wǎng)絡(luò)上由一臺電腦(主控端Remote)遠距離去監(jiān)控另一臺電腦(被監(jiān)控端Host)的技術(shù),這里的遠程不是字面意思的遠距離,一般指通過網(wǎng)絡(luò)監(jiān)控遠端電腦,不過,大多數(shù)時候我們所說的遠程監(jiān)控往往指在局域網(wǎng)中的遠程監(jiān)控而言。</p><p> 電腦中的遠程控制技術(shù),始于DOS時代,只不過當時
52、由于技術(shù)上沒有什么大的變化,網(wǎng)絡(luò)不發(fā)達,市場沒有更高的要求,所以遠程控制技術(shù)沒有引起更多人的注意。但是,隨著網(wǎng)絡(luò)的高度發(fā)展,電腦的管理及技術(shù)支持的需要,遠程操作及控制技術(shù)越來越引起人們的關(guān)注。</p><p> 遠程控制一般支持下面的這些網(wǎng)絡(luò)方式:LAN、WAN、撥號方式、互聯(lián)網(wǎng)方式。此外,有的遠程控制軟件還支持通過串口、并口、紅外端口來對遠程機進行控制(不過,這里說的遠程電腦,只能是有限距離范圍內(nèi)的電腦了)。
53、傳統(tǒng)的遠程控制軟件一般使用NETBEUI、NETBIOS、IPX/SPX、TCP/IP等協(xié)議來實現(xiàn)遠程控制,不過,隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,目前很多遠程控制軟件提供通過Web頁面以Java技術(shù)來控制遠程電腦,這樣可以實現(xiàn)不同操作系統(tǒng)下的遠程控制,例如數(shù)技通科技有限公司在就推出了全球第一套基于中文JAVA的跨平臺遠程控制軟件――易控。</p><p> 1 2 遠程監(jiān)控軟件的原理</p><p>
54、; 遠程監(jiān)控軟件一般分兩個部分:一部分是客戶端程序Client,另一部分是服務(wù)器端程序Server,由于本畢業(yè)設(shè)計的通信模塊有別于傳統(tǒng)的遠程監(jiān)控軟件,在使用前需要將客戶端程序安裝到被監(jiān)控端電腦上,將服務(wù)器端程序安裝到主控端電腦上。</p><p> 在進行一臺電腦對多臺遠端電腦進行控制時,我們發(fā)現(xiàn),遠程監(jiān)控軟件似乎更像一個局域網(wǎng)的網(wǎng)絡(luò)管理員,而提供遠程控制的遠程終端服務(wù)就像極了辦公室局域網(wǎng)的延伸。這種一對多的
55、連接方式在節(jié)省了調(diào)制解調(diào)器的同時,還使得網(wǎng)絡(luò)的接入更加安全可靠,網(wǎng)絡(luò)管理員也更易于管理局域網(wǎng)上的每一臺電腦。</p><p> 本文所論述的遠程監(jiān)控系統(tǒng)就是依照這種方式進行的。</p><p> 2 系統(tǒng)需求分析及理論基礎(chǔ)</p><p> 2.1 系統(tǒng)需求分析</p><p> 2.1.1 系統(tǒng)功能需求</p><
56、;p> 1.連續(xù)獲得被控端機器屏幕變化。</p><p> 2.實現(xiàn)被控端硬盤文件的上傳、下載。</p><p> 3.實現(xiàn)對鼠標、鍵盤的模擬。</p><p> 4.實現(xiàn)在被控端機器上執(zhí)行任意DOS命令。</p><p> 5.遠程關(guān)機、遠程重啟計算機。</p><p> 2.1.2 其他需求<
57、;/p><p> 1.系統(tǒng)實用,界面操作簡便。</p><p> 2.被監(jiān)控端自動隱藏運行。</p><p> 被監(jiān)控端將隨電腦啟動而自動運行,運行時默認無任何可見界面。</p><p> 2.2 系統(tǒng)開發(fā)原理及關(guān)鍵技術(shù)</p><p> 2.2.1 系統(tǒng)開發(fā)原理</p><p> 本系
58、統(tǒng)是利用類java.awt.robot中的屏幕截取和鼠標、鍵盤自動控制功能,然后加上網(wǎng)絡(luò)傳輸功能來完成來完成截屏和遠程控制的。</p><p> 2.2.2 系統(tǒng)運行概述</p><p> 1.啟動被監(jiān)控端,打開指定的UDP端口號。用于讀取命令。</p><p> 2.被監(jiān)控端讀取命令(命令格式為ordername:port)ordername為命令名字,po
59、rt為主控端打開的TCP端口。</p><p> 3.接到主控端連接后,被監(jiān)控端就對當前用戶的桌面采用屏幕截取,然后發(fā)送給主控端。依被監(jiān)控端設(shè)計的不同,可以設(shè)定屏幕截取的時間間隔,時間間隔短一點就可以獲得連續(xù)屏幕變化了。</p><p> 4.主控端在畫布上對鼠標、鍵盤事件進行監(jiān)聽,被監(jiān)控端重演主控端上的事件</p><p> 5.主控端和被監(jiān)控端讀取和發(fā)送數(shù)
60、據(jù),分別來實現(xiàn)文件上傳和下載。</p><p> 6.在被監(jiān)控端實現(xiàn)DOS命令的執(zhí)行。</p><p> 2.2.3 系統(tǒng)的關(guān)鍵技術(shù)</p><p> 系統(tǒng)使用的關(guān)鍵技術(shù)就是Java網(wǎng)絡(luò)編程和Java圖形編程。用Java網(wǎng)絡(luò)編程實現(xiàn)主控端和被監(jiān)控端的通訊(命令收發(fā)、數(shù)據(jù)傳送),用Java圖形編程完成主控端控制界面的編寫。具體應(yīng)用如下:</p>&
61、lt;p> 1.實現(xiàn)主控端(服務(wù)器)與被監(jiān)控端(客戶端)之間的通訊。</p><p> ——用Java Socket來實現(xiàn)。</p><p> 2.用Java采集事件,封裝成消息,用于發(fā)送。</p><p> ——在主控端機器上采集事件(一般只不過是鍵盤和鼠標的事件),然后封裝成消息類傳輸?shù)奖槐O(jiān)控端。</p><p> 3.在
62、被監(jiān)控端上重演主控端的動作事件。</p><p> ——在被監(jiān)控端運行client端,接收消息,如果主控端有請求操作的消息,用Robot截下當前屏幕,傳給主控端,主控端顯示被監(jiān)控端的屏幕,是一個位圖;然后接收在這個位圖上的鼠標事件和鍵盤事件,并把鼠標位置(位圖上的坐標換算成對應(yīng)的屏幕上的坐標)和鍵值送到被監(jiān)控端上,在被監(jiān)控端上重演同樣的事件。</p><p> 2.3 系統(tǒng)的開發(fā)平臺&
63、lt;/p><p> JDK1.5.0,MyEclipse8.5,Windows XP Professional</p><p> 2.3.1 MyEclipse介紹</p><p> MyEclipse是一種可擴展的開放源代碼IDE。2001年11月,IBM公司捐出價值4,000萬美元的源代碼組建了MyEclipse聯(lián)盟,并由該聯(lián)盟負責這種工具的后續(xù)開發(fā)。集成開
64、發(fā)環(huán)境(IDE)經(jīng)常將其應(yīng)用范圍限定在“開發(fā)、構(gòu)建和調(diào)試”的周期之中。為了幫助集成開發(fā)環(huán)境 (IDE)克服目前的局限性,業(yè)界廠商合作創(chuàng)建了MyEclipse平臺。MyEclipse允許在同一IDE中集成來自不同供應(yīng)商的工具,并實現(xiàn)了工具之間的互操作性,從而顯著改變了項目工作流程,使開發(fā)者可以專注在實際的嵌入式目標上。MyEclipse為工具開發(fā)商提供了更好的靈活性,使他們能更好地控制自己的軟件技術(shù)。MyEclipse是一個開放源代碼的項
65、目,任何人都可以下載MyEclipse的源代碼,并且在此基礎(chǔ)上開發(fā)自己的功能插件。同時可以通過開發(fā)新的插件擴展現(xiàn)有插件的功能,比如在現(xiàn)有的Java開發(fā)環(huán)境中加入Tomcat服務(wù)器插件??梢詿o限擴展,而且有著統(tǒng)一的外觀,操作和系統(tǒng)資源管理,這也正是MyEclipse的潛力所在。</p><p> 2.3.2 Java語言</p><p> Java語言是SUN公司于1995年5月推出的新
66、一代面向?qū)ο蟮挠嬎銠C通用編程語言,是繼WWW之后又一引起世界轟動的產(chǎn)品。Java語言的特點是跨平臺和強大的網(wǎng)絡(luò)編程功能。在Java語言誕生之前,Internet已存在,所以Java語言本身就封裝了大量進行網(wǎng)絡(luò)編程的類庫,使得網(wǎng)絡(luò)編程功能強大,同時又簡化了網(wǎng)絡(luò)編程的操作。因此利用Java語言可以開發(fā)出功能強大的網(wǎng)絡(luò)應(yīng)用程序。</p><p> 2.3.3 Jar命令</p><p> 功
67、能:Java歸檔工具</p><p> 語法:jar [命令選項] [manifest] destination input-file [input-files] </p><p> jar工具是個java應(yīng)用程序,可將多個文件合并為單個JAR歸檔文件。jar是個多用途的存檔及壓縮工具,它基于ZIP和ZLIB壓縮格式。然而,設(shè)計jar的主要目的是便于將java applet或應(yīng)用程序打
68、包成單個歸檔文件。將applet或應(yīng)用程序的組件(.class文件、圖像和聲音)合并成單個歸檔文件時,可以用java代理(如瀏覽器)在一次HTTP事務(wù)處理過程中對它們進行下載,而不是對每個組件都要求一個新連接。這大大縮短了下載時間。jar還能壓縮文件,從而進一步提高了下載速度。此外,它允許applet的作者對文件中的各個項進行簽名,因而可認證其來源。jar工具的語法基本上與tar命令的語法相同。</p><p>
69、<b> 命令選項:</b></p><p> -c:在標準輸出上創(chuàng)建新歸檔或空歸檔。</p><p> -t:在標準輸出上列出內(nèi)容表。 </p><p> -x[file]:從標準輸入提取所有文件,或只提取指定的文件。如果省略了file,則提取所有文件;否則只提取指定文件。 </p><p> -f:第二個參
70、數(shù)指定要處理的jar文件。在-c(創(chuàng)建)情形中,第二個參數(shù)指的是要創(chuàng)建的jar文件的名稱(不是在標準輸出上)。在-t(表(或-x(抽取)這兩種情形中,第二個參數(shù)指定要列出或抽取的jar文件。</p><p> -v:在標準錯誤輸出設(shè)備上生成長格式的輸出結(jié)果。 </p><p> -m:包括指定的現(xiàn)有清單文件中的清單信息。用法舉例:“jar cmf myManifestFile myJa
71、rFile *.class”</p><p> -0:只儲存,不進行 ZIP 壓縮。 </p><p> -M:不創(chuàng)建項目的清單文件。 </p><p> -u:通過添加文件或更改清單來更新現(xiàn)有的 JAR 文件。例如:“jar -uf foo.jar foo.class”將文件 foo.class 添加到現(xiàn)有的JAR文件foo.jar中,而“jar umf m
72、anifest foo.jar”則用manifest中的信息更新foo.jar的清單。 </p><p> -C:在執(zhí)行 jar 命令期間更改目錄。例如:“jar -uf foo.jar -C classes *”將classes目錄內(nèi)的所有文件加到foo.jar中,但不添加類目錄本身。</p><p><b> 程序示例 </b></p><
73、p> 1:將當前目錄下所有CLASS文件打包成新的JAR文件:</p><p> jar cf file.jar *.class </p><p> 2:顯示一個JAR文件中的文件列表:</p><p> jar tf file.jar </p><p> 3:將當前目錄下的所有文件增加到一個已經(jīng)存在的JAR文件中:</
74、p><p> jar cvf file.jar * </p><p> 2.4 編程運行環(huán)境</p><p><b> 硬件環(huán)境:</b></p><p> CPU: 閃龍2400</p><p><b> 內(nèi)存:256M</b></p><p&g
75、t;<b> 硬盤:80G</b></p><p><b> 軟件環(huán)境:</b></p><p> 操作系統(tǒng):Windows XP Professional</p><p> 應(yīng)用軟件:MyEclipse8.5 + JDK1.5.0 </p><p><b> 四、詳細設(shè)計說明書
76、</b></p><p> 3.1 系統(tǒng)總體結(jié)構(gòu)設(shè)計和分析</p><p> 本系統(tǒng)設(shè)計的方案為C/S模式,在主控端電腦上安裝服務(wù)器端程序,在被監(jiān)控端電腦上安裝客戶端程序。該系統(tǒng)的控制過程是先在主控端電腦上執(zhí)行服務(wù)器程序,在命令收發(fā)過程中,主控端向被監(jiān)控端配置的UDP端口發(fā)送命令,該命令是一個控制命令,要求被監(jiān)控端來連接其開啟的TCP端口和要求被監(jiān)控端執(zhí)行的操作,如果被監(jiān)控
77、端監(jiān)聽到該UDP命令,主動開啟TCP端口向主控端發(fā)送連接請求。這樣就建立了一個特殊的遠程服務(wù),然后通過這個遠程服務(wù),主控端使用各種遠程控制功能發(fā)送遠程控制命令,控制被監(jiān)控端電腦中的各種應(yīng)用程序運行。系統(tǒng)總體結(jié)構(gòu)如圖1:</p><p> 圖1 系統(tǒng)總體結(jié)構(gòu)圖</p><p> 圖3.1把軟件功能分解到通信的兩個端點上,即客戶端和服務(wù)器端,采用Client/Server模式。這樣能提高設(shè)
78、計的靈活性,易于系統(tǒng)的擴展。被監(jiān)控端接受主控端命令,并處理命令,然后輸出命令處理結(jié)果;主控端則提供交互界面及命令處理結(jié)果顯示;數(shù)據(jù)交換通道的建立由雙方的數(shù)據(jù)通信模塊負責。從而實現(xiàn)點到點的直接控制監(jiān)控,滿足實時性要求。</p><p> 3.1.1 主控端的主要功能模塊</p><p> 主控端包括的模塊有:消息輸入,命令處理結(jié)果顯示模塊,通信模塊。消息輸入模塊負責將用戶界面的事件傳送到
79、通信模塊,通信模塊將命令信息發(fā)送到被監(jiān)控端;被監(jiān)控端執(zhí)行操作后返回的成功或失敗信息交由主控端命令處理結(jié)果顯示模塊根據(jù)信息的格式進行顯示。</p><p> 3.1.2 被監(jiān)控端的主要功能模塊</p><p> 被監(jiān)控端包括的模塊有:通信模塊,命令處理模塊。被監(jiān)控端處于偵聽狀態(tài),一旦接收到合法的連接請求,就開UDP端口,并開啟命令接受線程,建立連接后,通過通信模塊接收主控端發(fā)來的命令信息
80、,經(jīng)命令處理模塊解釋后,并將結(jié)果返回到主控端。</p><p> 3.2 程序流程及分析</p><p> 3.2.1 被監(jiān)控端啟動流程</p><p> 在被監(jiān)控端安裝客戶端程序,程序啟動的時候,嘗試開啟UDP端口,如果防火墻或者殺毒軟件阻止,嘗試開啟配置的其它UDP端口,如果都嘗試完畢,啟動失敗。否則,將開啟的UDP套接字傳入,然后開啟命令接收線程,目的是
81、進行命令獲取,并對獲取的命令進行處理。然后將自己復制到自啟動項,并改名為Explorer.jar. 流程如圖2。</p><p> 圖2 被監(jiān)控端啟動流程</p><p> 3.2.2 主控端啟動流程</p><p> 在主控端安裝服務(wù)器程序,主控端首先啟動其控制窗口類,初始化圖形在主控端安裝服務(wù)器程序,主控端首先啟動其控制窗口類,初始化圖形顯示,然后用戶輸入
82、被監(jiān)控端的IP地址。接著主控端開啟任意TCP端口,并向該IP配置的UDP端口發(fā)送初始化命令(命令格式為ordername:port),ordername為命令名字,port為主控端打開的TCP端口號。主控端對開啟的TCP端口進行監(jiān)聽,如果超時,連接失敗。否則,主控端讀取被監(jiān)控端的狀態(tài)對象,接著啟動控制模塊和屏幕監(jiān)視模塊。流程如圖3。</p><p> 圖3 主控端啟動流程</p><p>
83、; 圖4 命令接受和處理流程</p><p> 3.2.3 命令接收和處理流程</p><p> 被監(jiān)控端UDP端口啟動成功后,就開始對該UDP端口進行監(jiān)聽,如果監(jiān)聽到有命令,就讀取它,并判斷命令是否有效,命令以ordername:port為格式,如果無效,返回繼續(xù)讀取命令,否則,調(diào)用相應(yīng)的命令處理模塊對命令進行處理,命令處理完后將處理結(jié)果返回給主控端。流程如圖4。</p>
84、;<p> 3.2.4 圖形監(jiān)視線程啟動流程</p><p> 主控端開啟任意TCP端口,向被監(jiān)控端的UDP端口發(fā)送“要求被監(jiān)控端連接”的UDP命令,命令形式為screen:TCP Port。如果命令超時,命令執(zhí)行失敗,否則,如果被監(jiān)視端來連接,生成Soket對象,從Soket中讀取被監(jiān)視端發(fā)送過來的圖形對象,并將圖象顯示在畫布上,每隔一定時間(若干秒),重新讀取圖象,更</p>
85、<p> 新畫布顯示,從而實現(xiàn)連續(xù)獲得對方屏幕變化。流程如圖5。</p><p> 圖5 圖形監(jiān)視線程啟動流程</p><p> 3.2.5 遠程控制流程</p><p> 被監(jiān)控端收到主控端的UDP命令:control:TCP Port,獲得主控端開放的TCP端口號。成功連接主控端的TCP端口后,并從中讀取事件對象,接著對事件對象進行類型判斷,如
86、果是鍵盤事件,就對鍵盤事件重演;如果是鼠標事件,就對鼠標事件重演。接著判定控制套接是否關(guān)閉,如果關(guān)閉,控制結(jié)束。否則返回繼續(xù)讀取事件。流程如圖6。</p><p><b> 圖6 遠程控制流程</b></p><p> 3.2.6 文件上傳流程</p><p> 主控端開啟任意TCP端口,向被監(jiān)控端發(fā)送文件上傳命令,命令格式為:fileu
87、p:TCP Port。如果命令超時,文件上傳失敗,否則,主控端讀取文件數(shù)據(jù)并發(fā)送,發(fā)送過程中如果I/O錯誤,文件上傳失敗,否則,進行文件是否讀取完判斷,如果讀取完,則上傳成功,否則,繼續(xù)讀取文件數(shù)據(jù)。流程如圖7。</p><p><b> 圖7 文</b></p><p><b> 五、源程序清單</b></p><p&g
88、t; 4.1 系統(tǒng)主要模塊設(shè)計</p><p> 4.1.1 消息輸入,命令處理結(jié)果顯示模塊</p><p> 主控端消息輸入,顯示模塊的開發(fā)采用JAVA圖形編程,利用模塊化、通用性強的特點,實現(xiàn)遠程監(jiān)控中用戶控制界面的編寫。</p><p> 4.1.2 通信模塊實現(xiàn)</p><p> 1.Socket編程</p>
89、<p> 數(shù)據(jù)通信模塊中的數(shù)據(jù)通道建立采用Socket編程。Socket支持TCP/IP協(xié)議網(wǎng)絡(luò)通信的基本操作;它屏蔽了網(wǎng)絡(luò)底層的通信細節(jié),使編程簡單;它對通信端點進行了抽象,提供發(fā)送和接收數(shù)據(jù)機制及打開、計算和關(guān)閉會話的能力。本項目中,客戶端和服務(wù)器代表運行在Windows操作平臺下,采用Java Socket來編程實現(xiàn)命令和數(shù)據(jù)信息的傳輸。</p><p> 主控端主要通信代碼:</p&g
90、t;<p> ServerSocket server=NewRadomSocket.openNewPort(); //開啟新端口</p><p> Socket socket=null;</p><p> server.setSoTimeout(Parameter.TCP_TIME_OUT); //設(shè)置超時</p><p> socket=se
91、rver.accept(); //開啟</p><p> ObjectInputStream readin=new ObjectInputStream(socket.getInputStream()); //封裝流,準備讀取一個對象</p><p> socket.close(); //關(guān)閉socket,結(jié)束通信</p><p> 被監(jiān)控端主要通信代碼:<
92、;/p><p> Socket socket=new Socket(serverip, serverport);</p><p> ObjectOutputStream send=new ObjectOutputStream(socket.getOutputStream());//封裝流</p><p> send.writeObject(cc); //發(fā)送<
93、;/p><p> send.close(); //關(guān)閉流</p><p> socket.close(); //關(guān)閉套接</p><p> 4.1.3 命令處理模塊</p><p> 命令處理模塊的實現(xiàn)就是通過函數(shù)調(diào)用,調(diào)用各個命令處理類。在命令處理模塊中,被監(jiān)控端執(zhí)行以下操作:發(fā)送自己的狀態(tài)信息給主控端;建立圖象傳送;開啟控制命令套接字
94、;文件上傳;文件下載;執(zhí)行DOS命令,獲取執(zhí)行結(jié)果和錯誤流。</p><p> 4.2 連續(xù)獲得被監(jiān)控端機器屏幕變化功能實現(xiàn)</p><p> 4.2.1 比較幾種屏幕截取方法</p><p> 在Java遠程監(jiān)控過程中,我們要截取軟件運行GUI界面,并將其保存到一個或一系列圖像文件中。</p><p> 目前,在Windows平臺下
95、,有關(guān)屏幕截取的工具軟件有許多,比如:HyperCam等,當然還可以直接利用Windows操作系統(tǒng)支持的屏幕拷貝Print Screen鍵,將屏幕拷貝到剪貼板,在保存為圖像文件。這些工具軟件一定要屏幕截取者,在操作過程中要"精力集中"并且"伺機捕獲"所需要的軟件運行界面。事實上,有時候我們需要Java應(yīng)用程序,自動對運行的GUI界面進行"拍照",比如:一臺計算機要獲取網(wǎng)絡(luò)上另一
96、臺計算機正在運行的GUI界面,要看看對方計算機上軟件運行情況。這就需要在Java應(yīng)用程序中,自動將運行的GUI界面保存到一個圖像文件中,然后通過網(wǎng)絡(luò)傳輸?shù)搅硪慌_計算機上。而上述HyperCam等工具軟件無法與我們的Java應(yīng)用融合為一體。因此,我們需要在Java應(yīng)用程序中編寫一個屏幕"照相機"。</p><p> 4.2.2 Java“屏幕照相機”的編寫原理</p><p
97、> "屏幕的截取"是比較接近操作系統(tǒng)底層的操作,在Windows平臺下,該操作似乎成了VC、VB等語言開發(fā)的專利。事實上,"屏幕的截取"在Java應(yīng)用程序中,及其簡單。在Java JDK1.5.0 中提供了一個"機器人"Robot類。該類用于產(chǎn)生與本地操作系統(tǒng)有關(guān)的底層輸入、測試應(yīng)用程序運行或自動控制應(yīng)用程序運行。Robot類提供了一個方法:.createScreenC
98、apture(..),可以直接將全屏幕或某個屏幕區(qū)域的像素拷貝到一個BufferedImage對象中,我們只需要將該對象寫入到一個圖像文件之中,就完成了屏幕到圖像的拷貝過程。</p><p> 4.2.3 Java“屏幕照相機”的實現(xiàn)</p><p> 為了構(gòu)造一個比較完善的Java屏幕"照相機",我們構(gòu)造了一個ImageProvider JavaBean,其源代碼
99、和說明如下:</p><p> /* 該JavaBean可以直接在其他Java應(yīng)用程序中調(diào)用,實現(xiàn)屏幕的"拍照" */</p><p> public class ImageProvider {</p><p> private Robot robot=null; //圖象采集類</p><p> private
100、Rectangle rect=null; //要復制的 屏幕區(qū)域</p><p> /* 構(gòu)造函數(shù),輸入要采集的屏幕的 矩形信息*/</p><p> public ImageProvider() throws AWTException{</p><p> rect=new Rectangle(Toolkit.getDefaultToolkit().getSc
101、reenSize()); //要復制的屏幕區(qū)域,這里為全屏</p><p> robot=new Robot(); //創(chuàng)建Robot對象</p><p><b> }</b></p><p> /* 復制全屏幕,返回BufferedImage對象 */</p><p> public BufferedImage
102、 CopyScreen(){</p><p> BufferedImage image=robot.createScreenCapture(rect); //截取屏幕,生成BufferedImage對象</p><p> return image;</p><p><b> }</b></p><p><b&
103、gt; }</b></p><p> 4.2.4 遠程屏幕監(jiān)控的實現(xiàn)</p><p> 實現(xiàn)屏幕監(jiān)控要完成被監(jiān)控端發(fā)送屏幕截圖和主控端接收圖片的工作,該功能的實現(xiàn)中構(gòu)造了兩個類:SendImage Thread和GetImageThread,類圖分別為圖8和圖9。</p><p> 圖8 SendImage Thread類圖</p>
104、<p> SendImage Thread JavaBean 代碼和說明如下:</p><p> /*被監(jiān)控端將Java屏幕"照相機"采集到的圖片壓縮為JPEG文件,發(fā)送到主控端*/</p><p> public class SendImageThread extends Thread{</p><p> 。。。。。。。。。
105、。。。。。。。(部分代碼略去)</p><p> public void run(){</p><p><b> int i=0;</b></p><p> OutputStream out=null;</p><p> JPEGImageEncoder encoder=null; //壓縮為JPEG</p
106、><p> try {out = client.getOutputStream(); //獲得TCP套接字流</p><p> encoder=JPEGCodec.createJPEGEncoder(out);//將流壓縮為JPEG對象流</p><p> } catch (IOException e1) {</p><p> e1.pr
107、intStackTrace();</p><p><b> }</b></p><p> while(true){</p><p> image=impv.CopyScreen(); //截取屏幕圖象</p><p> encoder.encode(image) ; //向網(wǎng)絡(luò)寫入JPEG圖形對象</p&g
108、t;<p><b> }</b></p><p><b> }</b></p><p> 圖9 GetImage Thread類圖</p><p> GetImage Thread JavaBean 代碼和說明如下:</p><p> /*主控端接收JPEG文件,并在畫布上顯
109、示*/</p><p> public class GetImageThread extends Thread{</p><p> 。。。。。。。。。。(部分代碼略去)</p><p> public void run(){</p><p> BufferedImage image=null;</p><p>
110、 JPEGImageDecoder de=null;</p><p> InputStream in=null;</p><p><b> try {</b></p><p> socket.setReceiveBufferSize(1024); //設(shè)置接收緩沖</p><p> socket.setSoTi
111、meout(60000); //設(shè)置TCP過期時間</p><p> in=socket.getInputStream(); //獲取套接字輸入流</p><p> de=JPEGCodec.createJPEGDecoder(in); //將輸入流封裝為JPEG對象流</p><p> } catch (IOException e) {</p>
112、<p> // TODO Auto-generated catch block</p><p> e.printStackTrace();</p><p><b> }</b></p><p> int wrongtime=0;</p><p> while(true){</p>&l
113、t;p> wrongtime++;</p><p> if(wrongtime>=200)break;</p><p> image=de.decodeAsBufferedImage(); //對JPEG對象解碼,還原為BufferedImage圖形對象</p><p> MainFrame.getInstance().ShowImage(ima
114、ge); //在控制窗口的畫布上顯示圖象</p><p><b> } </b></p><p><b> }</b></p><p> 4.2.5 屏幕監(jiān)視功能測試</p><p> 在系統(tǒng)實現(xiàn)過程中,成功完成了連續(xù)獲得被監(jiān)控端機器屏幕變化的功能,下面為測試圖片:</p>&
115、lt;p> 圖10 屏幕監(jiān)視圖片</p><p> 本節(jié)詳細介紹了遠程屏幕監(jiān)視的功能實現(xiàn)。對于功能需求中的其他功能,這里就不逐一介紹了。對于遠程控制功能,如果要實現(xiàn)該功能,首先需要主控端向被監(jiān)控端發(fā)送遠程控制命令,被監(jiān)控端收到命令后,首先返回給主控端一個包含被監(jiān)控端屏幕分辨率等的狀態(tài)信息,主控端根據(jù)狀態(tài)信息更新本機所存的被控端狀態(tài),并調(diào)整畫布大小,使其比例符合被監(jiān)控端屏幕分辨率,這樣才可以精確定位。在畫
116、布中對事件進行監(jiān)聽,采集事件,封裝成消息發(fā)送給被監(jiān)控端,然后在被監(jiān)控端使用Robot對象控制鼠標對象的位置與動作,實現(xiàn)事件重演。這樣就能實現(xiàn)遠程控制。</p><p><b> 六、用戶手冊</b></p><p> 完成人: 劉燕三 </p><p> 1.前言(Preface)</p><p
117、> 編寫本手冊的目的:是用戶能夠系統(tǒng)的了解本軟件的主要功能和程序的流程,使得用戶能夠在使用之前能夠?qū)浖旧碛幸欢ǖ牧私?,使得用戶在確定是否購買本軟件的時候起到參照的作用。這就是本手冊的作用。</p><p> 1.1 內(nèi)容簡介(Introduction)</p><p> 在B/S模式下采用傳統(tǒng)的三層體系結(jié)構(gòu)來設(shè)計監(jiān)控組態(tài)軟件,在一般的三層體系結(jié)構(gòu)的基礎(chǔ)上增加了控制層,用來實
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 軟件工程課程設(shè)計—選課系統(tǒng)
- 軟件工程課程設(shè)計管理系統(tǒng)
- 軟件工程課程設(shè)計
- 軟件工程課程設(shè)計
- 軟件工程課程設(shè)計
- 軟件工程課程設(shè)計
- 《軟件工程》課程設(shè)計
- 軟件工程課程設(shè)計
- 軟件工程-課程設(shè)計-socket聊天系統(tǒng)
- 軟件工程課程設(shè)計-超市管理系統(tǒng)
- 軟件工程課程設(shè)計(酒店管理系統(tǒng))
- 軟件工程課程設(shè)計-------bbs論壇系統(tǒng)
- 軟件工程課程設(shè)計---獎學金評定系統(tǒng)
- 軟件工程課程設(shè)計---超市管理系統(tǒng)
- 軟件工程課程設(shè)計--庫存管理系統(tǒng)
- 軟件工程課程設(shè)計---作業(yè)提交系統(tǒng)
- 軟件工程課程設(shè)計-簡易辦公系統(tǒng)
- 軟件工程課程設(shè)計--學籍管理系統(tǒng)
- 《軟件工程》課程設(shè)計--學生管理系統(tǒng)
- 軟件工程課程設(shè)計-選課管理系統(tǒng)
評論
0/150
提交評論