




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、編號:04 軟件工程軟件工程課程設(shè)計(jì)課程設(shè)計(jì) 題目題目:基于基于 cscs 模式遠(yuǎn)程監(jiān)控系統(tǒng)軟件的實(shí)現(xiàn)模式遠(yuǎn)程監(jiān)控系統(tǒng)軟件的實(shí)現(xiàn) 系系 (院):信息工程學(xué)院(院):信息工程學(xué)院 專專 業(yè):計(jì)算機(jī)科學(xué)與技術(shù)業(yè):計(jì)算機(jī)科學(xué)與技術(shù) 班班 級:計(jì)科級:計(jì)科 0901b0901b 組組 長:謝永路長:謝永路 組組 員:趙春樂員:趙春樂 胡園胡園 劉燕三劉燕三 指導(dǎo)教師:王娟娟指導(dǎo)教師:王娟娟 目錄目錄 一、可行性分析報(bào)告一、可行性分析報(bào)告.4 引言.4 1.2 可行性分析的前提 .4 1.3對現(xiàn)有系統(tǒng)的分析 .5 通過綜合各個(gè)方面的資料,我們了解到基于 bs 模式的系統(tǒng)尚未成形普及,這說明基于 bs 模
2、 式的系統(tǒng)的需求很大!.5 1.4 所建議的系統(tǒng) .5 可以使用 cs 模式,但這使用起來有一定的局限性,不能滿足用戶的需要!也不符合 intenet 的快速發(fā)展的需要!.5 1.5 可選擇的其他系統(tǒng)方案.5 如果 cs 模式開發(fā)出現(xiàn)問題,我們可以現(xiàn)開發(fā) bs 模式,雖然與我們的期望南轅北轍,但可以 把這看成第一個(gè)版本,這樣也可以為 cs 模式墊定基礎(chǔ)!這只是一種方案!.5 1.6 投資及效益分析 .5 開發(fā)這款軟件投資較小,我們需要的只是在電腦上進(jìn)行編程,投資較?。《疫@個(gè)系統(tǒng)又是 當(dāng)今社會所需要的,他能滿足我們各個(gè)方面的需求!所以未來的效益也是非??捎^的!.5 1.7 社會因素方面的可行性
3、.5 1.8 結(jié)論.5 二、二、 需求規(guī)格說明書需求規(guī)格說明書 .6 1概述(summary) .6 2問題初始分析(early analysis).7 3目標(biāo)系統(tǒng)功能需求(function of target system) .7 4目標(biāo)系統(tǒng)性能需求(performance of target system).7 5目標(biāo)系統(tǒng)界面與接口需求(interface of target system).8 6目標(biāo)系統(tǒng)其他需求(other requirements of target system).8 7目標(biāo)系統(tǒng)假設(shè)與約束條件(suppose and restriction of target sy
4、stem).9 三、總體設(shè)計(jì)說明書三、總體設(shè)計(jì)說明書.9 1.1 遠(yuǎn)程監(jiān)控的背景知識 .10 1 2 遠(yuǎn)程監(jiān)控軟件的原理.10 2 系統(tǒng)需求分析及理論基礎(chǔ)系統(tǒng)需求分析及理論基礎(chǔ).10 2.1 系統(tǒng)需求分析 .10 2.2 系統(tǒng)開發(fā)原理及關(guān)鍵技術(shù).11 2.3 系統(tǒng)的開發(fā)平臺 .11 2.4 編程運(yùn)行環(huán)境 .13 四、詳細(xì)設(shè)計(jì)說明書四、詳細(xì)設(shè)計(jì)說明書 .13 3.1 系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)和分析.13 3.2 程序流程及分析 .14 五、源程序清單五、源程序清單.18 4.1 系統(tǒng)主要模塊設(shè)計(jì) .18 4.2 連續(xù)獲得被監(jiān)控端機(jī)器屏幕變化功能實(shí)現(xiàn).18 六、用戶手冊六、用戶手冊.22 1前言(pref
5、ace) .22 2功能(function).23 七、測試報(bào)告七、測試報(bào)告.24 1. 概述(summary).24 2. 組件測試(module test).24 3功能測試(function test).25 4. 測試結(jié)論(test verdict) .25 5 系統(tǒng)運(yùn)行及測試結(jié)果 .28 5.1 測試方法.28 5.2 測試環(huán)境.28 5 3 系統(tǒng)運(yùn)行實(shí)例.28 八、軟件開發(fā)總結(jié)報(bào)告八、軟件開發(fā)總結(jié)報(bào)告.30 參考文獻(xiàn)參考文獻(xiàn).31 一、可行性分析報(bào)告一、可行性分析報(bào)告 引言引言 .1 編寫目的編寫目的 看這個(gè)方案是否可行,是否滿足經(jīng)濟(jì)可行性,操作可行性,和技術(shù)可行性
6、,只有各個(gè) 方面都可行,才可以進(jìn)行下面軟件的開發(fā),否則以后做的所有工作都白搭! 項(xiàng)目的目標(biāo):該項(xiàng)目的目標(biāo)是能夠?qū)崿F(xiàn) b/s 模式的遠(yuǎn)程監(jiān)控,對局域網(wǎng)乃至整個(gè)網(wǎng)絡(luò) 都能夠?qū)崿F(xiàn)遠(yuǎn)程監(jiān)控,讓用戶在任何一個(gè)地方都能夠?qū)μ崆霸O(shè)定的區(qū)域進(jìn)行監(jiān)控和管理。 1.1.2 背景 目前所有的系統(tǒng)都是在 cs 模式下完成,基于 bs 模式的遠(yuǎn)程監(jiān)控系統(tǒng)尚未出現(xiàn),在互 聯(lián)網(wǎng)發(fā)展的大背景下,基于 cs 模式的遠(yuǎn)程監(jiān)控系統(tǒng)也就應(yīng)用而生! 1.1.3 定義 基于 bs 模式的遠(yuǎn)程監(jiān)控系統(tǒng):就是讓用戶在任何地方,通過已經(jīng)聯(lián)網(wǎng)的瀏覽器,對提 前設(shè)定的區(qū)域進(jìn)行監(jiān)控和管理! 用戶 pc 機(jī):一臺普普通通的電腦,具體點(diǎn)這里指能夠上網(wǎng)的
7、電腦。 普通攝像頭:他不具有網(wǎng)絡(luò)攝像頭的功能,只是有某種接口的普通攝像頭。 后臺服務(wù)器:他對用戶數(shù)據(jù)進(jìn)行分析與處理。管理真?zhèn)€網(wǎng)站。 1.1.4 參考資料 web 程序設(shè)計(jì) (美)robert w.sebesta 著 jsp 基礎(chǔ)教程耿祥義 張躍平 編著 軟件工程導(dǎo)論 (第五版) 張海藩 編著 uml 基礎(chǔ)、案例與應(yīng)用 (第三版) (美)joseph schmuller 著 1.2 可行性分析的前提 1.2.1 要求 他必須的完成以下功能: (1) 、視頻數(shù)據(jù)的實(shí)時(shí)傳輸 (2) 、視頻數(shù)據(jù)的存盤與管理 (2) 、視頻數(shù)據(jù)的分析以及圖像數(shù)據(jù)的分析 1.3 對現(xiàn)有系統(tǒng)的分析 通過綜合各個(gè)方面的資料,
8、我們了解到基于 bs 模式的系統(tǒng)尚未成形普及,這說明 基于 bs 模式的系統(tǒng)的需求很大! 1.4 所建議的系統(tǒng) 可以使用 cs 模式,但這使用起來有一定的局限性,不能滿足用戶的需要!也不符合 intenet 的快速發(fā)展的需要! 1.5 可選擇的其他系統(tǒng)方案 如果 cs 模式開發(fā)出現(xiàn)問題,我們可以現(xiàn)開發(fā) bs 模式,雖然與我們的期望南轅北轍, 但可以把這看成第一個(gè)版本,這樣也可以為 cs 模式墊定基礎(chǔ)!這只是一種方案! 1.6 投資及效益分析 開發(fā)這款軟件投資較小,我們需要的只是在電腦上進(jìn)行編程,投資較?。《疫@個(gè)系 統(tǒng)又是當(dāng)今社會所需要的,他能滿足我們各個(gè)方面的需求!所以未來的效益也是非??捎^
9、 的! 1.7 社會因素方面的可行性 我們從三個(gè)方面分析該項(xiàng)目的可行性: 在操作方面:首先,在全校范圍內(nèi)沒有該系統(tǒng),或類似于該系統(tǒng)的東西出現(xiàn)。而我們 又非常的渴望這樣的系統(tǒng)。比如,對于機(jī)房,機(jī)房管理員或任課教師就不用去機(jī)房,就能 對整個(gè)機(jī)房的情況進(jìn)行監(jiān)控。對于宿舍或者其他居住場所,我們可以隨時(shí)隨地的通過網(wǎng)絡(luò), 對這些地方進(jìn)行遠(yuǎn)程監(jiān)控和管理。也就是說,用戶只需要通過瀏覽器,輸入自己的賬號和 密碼,就可以實(shí)現(xiàn)對現(xiàn)場設(shè)備狀態(tài)的安全監(jiān)控!在操作上是行的通的。 在技術(shù)方面:我們采用 java web 程序設(shè)計(jì),它是基于 java 面向?qū)ο蟮?。并且我們?用學(xué)習(xí)過的三種框架技術(shù),實(shí)現(xiàn)整個(gè)網(wǎng)絡(luò)編程。這些技術(shù)
10、都是我們學(xué)習(xí)過,并且都已經(jīng)掌 握的。我們會涉及到圖像識別,數(shù)據(jù)的分析與處理等這些前沿的東西。我們相信,在技術(shù) 上我們完全可以做到。 在經(jīng)濟(jì)方面:我們不需要學(xué)校的補(bǔ)助,我們小組每個(gè)人都有電腦,如果可以的話,我 們也能去機(jī)房,完成項(xiàng)目的編碼與測試??梢哉f我們不需要什么費(fèi)用,就可以完成這個(gè)項(xiàng) 目。所以我們共同認(rèn)為經(jīng)濟(jì)上絕對不是一個(gè)問題! 1.8 結(jié)論 開發(fā)這個(gè)系統(tǒng)是可行的,不管從我們小組個(gè)人能力,還是從未來發(fā)展方向,都能為我們 在 web 方向的學(xué)習(xí),墊定基礎(chǔ)! 二、二、 需求規(guī)格說明書需求規(guī)格說明書 完成人完成人: 謝永路 1 1概述(概述(summarysummary) 1.11.1 項(xiàng)目的目的
11、與目標(biāo)(項(xiàng)目的目的與目標(biāo)(purposepurpose andand aimaim ofof projectproject) 項(xiàng)目名稱是:基于 web 技術(shù)的遠(yuǎn)程安全監(jiān)控系統(tǒng)。項(xiàng)目的目的是用戶可以在任何一個(gè) 地方,通過網(wǎng)絡(luò)就能對提前設(shè)置的區(qū)域進(jìn)行監(jiān)控和管理,而不用去監(jiān)控室里,這樣非常的 方便,他是隨著 internet 發(fā)展,應(yīng)用而生,他是基于 b/s 模式的,而傳統(tǒng)的監(jiān)控系統(tǒng)是基 于 c/s 模式。 項(xiàng)目的目標(biāo):該項(xiàng)目的目標(biāo)是能夠?qū)崿F(xiàn) b/s 模式的遠(yuǎn)程監(jiān)控,對局域網(wǎng)乃至整個(gè)網(wǎng)絡(luò) 都能夠?qū)崿F(xiàn)遠(yuǎn)程監(jiān)控,讓用戶在任何一個(gè)地方都能夠?qū)μ崆霸O(shè)定的區(qū)域進(jìn)行監(jiān)控和管理。 數(shù)據(jù)傳輸 整個(gè)該系統(tǒng)的工作流程如
12、上圖所示,服務(wù)器從攝像頭獲得數(shù)據(jù),pc 機(jī)能夠訪問服務(wù)器,并 可以得到實(shí)時(shí)數(shù)據(jù)和已經(jīng)存盤的數(shù)據(jù)。并且用戶也可以通過服務(wù)器對遠(yuǎn)程攝像頭進(jìn)行控制。 另外系統(tǒng)所實(shí)現(xiàn)的功能遠(yuǎn)不止這些,他要對后臺服務(wù)器進(jìn)行全面管理。又類似一個(gè)網(wǎng)站的 功能。所有的這些都是該項(xiàng)目的目的。 1.21.2 術(shù)語定義(術(shù)語定義(termsterms glossaryglossary) 用戶 pc 機(jī):一臺普普通通的電腦,具體點(diǎn)這里指能夠上網(wǎng)的電腦。 普通攝像頭:他不具有網(wǎng)絡(luò)攝像頭的功能,只是有某種接口的普通攝像頭。 后臺服務(wù)器:他對用戶數(shù)據(jù)進(jìn)行分析與處理。管理真?zhèn)€網(wǎng)站。 1.31.3 相關(guān)文檔(相關(guān)文檔(relatedrelat
13、ed documentsdocuments) 說明用戶需求報(bào)告的變更,以及可能受變更影響的其他相關(guān)文檔,如:項(xiàng)目開發(fā)計(jì)劃 和設(shè)計(jì)說明書。 web 程序設(shè)計(jì) (美)robert w.sebesta 著 jsp 基礎(chǔ)教程耿祥義 張躍平 編著 軟件工程導(dǎo)論 (第五版) 張海藩 編著 uml 基礎(chǔ)、案例與應(yīng)用 (第三版) (美)joseph schmuller 著 java 核心技術(shù)cay s.horstmann gary cornell 編著 數(shù)據(jù)庫系統(tǒng)概論王珊 薩師煊 著 2 2問題初始分析(問題初始分析(earlyearly analysisanalysis) 我們對整個(gè)項(xiàng)目進(jìn)行全面分析以后,發(fā)
14、現(xiàn)該項(xiàng)目面臨的問題如下: (1) 、如何把攝像頭中的數(shù)據(jù)傳到服務(wù)器中,并每隔一段時(shí)間進(jìn)行保存,如果是多個(gè)攝像 頭,又該如何傳輸,這涉及到多線程并發(fā)的操作。 (2) 、用戶如何通過網(wǎng)絡(luò)從服務(wù)器上獲得數(shù)據(jù),以及獲得的是實(shí)時(shí)數(shù)據(jù)。如果該用戶又多 個(gè)攝像頭,又該獲得每個(gè)攝像頭中的數(shù)據(jù)。 (3) 、后臺服務(wù)器,如何管理。 (4) 、用戶如何通過服務(wù)器對遠(yuǎn)程攝像頭進(jìn)行控制。 2.12.1 場景描述(場景描述(scenescene descriptiondescription) 用戶所處的位置可以是任何一個(gè)地點(diǎn),首先用戶的電腦必須能夠上網(wǎng)。也就是說能夠 通過瀏覽器進(jìn)行訪問,用戶不需要安裝任何軟件。 用戶必須
15、在某個(gè)區(qū)域配置有攝像頭,該攝像頭并且能夠連接到服務(wù)器中去。 普通攝像頭 服務(wù)器 用戶 pc 機(jī) 數(shù)據(jù)傳輸 發(fā)出請求 控制命令 2.22.2 初始功能提?。ǔ跏脊δ芴崛。╡arlyearly functionfunction distilldistill) (1) 、視頻數(shù)據(jù)的實(shí)時(shí)傳輸 (2) 、視頻數(shù)據(jù)的存盤與管理 (2) 、視頻數(shù)據(jù)的分析以及圖像數(shù)據(jù)的分析 3 3目標(biāo)系統(tǒng)功能需求(目標(biāo)系統(tǒng)功能需求(functionfunction ofof targettarget systemsystem) 3.13.1 功能需求分析(功能需求分析(functionfunction analysisana
16、lysis) 創(chuàng)建用例模型與域模型,要求采用用例表進(jìn)行用例規(guī)約描述,必要時(shí)采用活動(dòng)圖進(jìn)行 檢驗(yàn)。 用戶 查看視頻 注冊登錄 管理攝像頭 查詢視頻 管理視頻 4 4目標(biāo)系統(tǒng)性能需求(目標(biāo)系統(tǒng)性能需求(performanceperformance ofof targettarget systemsystem) 在 b/s 模式下采用傳統(tǒng)的三層體系結(jié)構(gòu)來設(shè)計(jì)監(jiān)控組態(tài)軟件,并不能直接實(shí)現(xiàn)與被控 對象進(jìn)行數(shù)據(jù)通信,因此基于 web 技術(shù)的監(jiān)控組態(tài)軟件采用四層體系結(jié)構(gòu)進(jìn)行設(shè)計(jì),如圖 2 所示。它是在一般的三層體系結(jié)構(gòu)的基礎(chǔ)上增加了控制層,用來實(shí)現(xiàn) web 服務(wù)器與被控 對象的通信,進(jìn)一步控制被控對象。這樣
17、既充分利用了現(xiàn)有的網(wǎng)絡(luò)資源和工業(yè)現(xiàn)場資源, 也使得兩者有機(jī)地結(jié)合在一起,達(dá)到了 web 服務(wù)器與現(xiàn)場設(shè)備通過現(xiàn)場總線進(jìn)行遠(yuǎn)程通信 的目的。 4.14.1 時(shí)間要求(時(shí)間要求(timetime requestrequest) 如: (1)響應(yīng)時(shí)間,如查詢的最長等待時(shí)間。 (2)更新處理時(shí)間,如記賬的最長時(shí)間。 (3)數(shù)據(jù)的轉(zhuǎn)換和傳送時(shí)間,如遠(yuǎn)程數(shù)據(jù)傳輸?shù)臅r(shí)間要求。 (4)解題時(shí)間。 以上的時(shí)間要求,我們會控制在 2s 內(nèi)完成??赡苓@個(gè)時(shí)間有些長,但是必須考慮到, 網(wǎng)絡(luò)的流量以及網(wǎng)絡(luò)阻塞情況。就好比你上網(wǎng)看視頻,如果網(wǎng)速很慢,你等的時(shí)間會很長 些,如果網(wǎng)速快,你可能不用等很長時(shí)間。實(shí)時(shí)視頻的傳輸速
18、率也和網(wǎng)絡(luò)狀況有關(guān)。 4.24.2 空間要求(空間要求(spacespace requestrequest) 如: (1)支持的終端數(shù)。 (2)支持的并行操作的使用者數(shù)。 (3)處理的文件和記錄數(shù)。 (4)處理任務(wù)的數(shù)量。 (5)對輸入和輸出數(shù)據(jù)的精度要求。 (6)對處理和傳輸過程中的精度要求。 5 5目標(biāo)系統(tǒng)界面與接口需求(目標(biāo)系統(tǒng)界面與接口需求(interfaceinterface ofof targettarget systemsystem) 5.15.1 界面需求(界面需求(interphaseinterphase requirementrequirement) 界面的原則要求,如方便
19、、簡潔、美觀、一致等。整個(gè)系統(tǒng)的界面風(fēng)格定義,某些功 能模塊的特殊的界面要求。 (1)輸入設(shè)備:鍵盤、鼠標(biāo)、條碼掃描器、掃描儀等; (2)輸出設(shè)備:顯示器、打印機(jī)、光盤刻錄機(jī)、磁帶機(jī)、音箱等; (3)顯示風(fēng)格:圖形界面、字符界面、ie 界面等; (4)顯示方式:1024*768、640*480 等; (5)輸出格式:顯示布局、打印格式等。 我們設(shè)計(jì)的界面一定要達(dá)到美觀,易懂,并且會有相應(yīng)的提示說明。在輸入、輸出設(shè) 備上,沒有太大的要求。該系統(tǒng)采用的顯示風(fēng)格是 ie 界面。至于顯示方式,他會根據(jù)用戶 電腦的分辨率進(jìn)行調(diào)節(jié),以適應(yīng)任何形式的顯示方式。在輸出格式方面,該系統(tǒng)會兼顧各 個(gè)方面,我們的輸
20、出格式會達(dá)到形式多樣化。 總之,他會讓用戶看著舒心,用著放心。任何人都可以使用。 5.25.2 接口需求(接口需求(interfaceinterface requirementrequirement) 與其他系統(tǒng)的接口,如監(jiān)控系統(tǒng)、控制系統(tǒng)、銀行結(jié)算系統(tǒng)、稅控系統(tǒng)、財(cái)務(wù)系統(tǒng)、 政府網(wǎng)絡(luò)系統(tǒng)及其他系統(tǒng)等。 (1)與系統(tǒng)特殊外設(shè)的接口,如 ct 機(jī)、磁共振、柜員機(jī)(atm) 、ic 卡、盤點(diǎn)機(jī)等。 (2)與中間件的接口,要列出接口規(guī)范、入口參數(shù)、出口參數(shù)、傳輸頻率等。 應(yīng)在此列舉出所有的外部接口名稱、接口標(biāo)準(zhǔn)、規(guī)范。外部接口列表,如表 2-3 所示。 6 6目標(biāo)系統(tǒng)其他需求(目標(biāo)系統(tǒng)其他需求(ot
21、herother requirementsrequirements ofof targettarget systemsystem) (1) 、統(tǒng)進(jìn)行擴(kuò)展、該系統(tǒng)會對區(qū)域人員進(jìn)行圖像辨別,數(shù)據(jù)分析。會判斷入境人員 的身份,并及時(shí)做出相應(yīng)的處理。 (2) 、用戶信息的安全保護(hù)。 6.16.1 安全性(安全性(securitysecurity) 用戶的賬號,該系統(tǒng)會做到最高級別的保護(hù)。 遠(yuǎn)程監(jiān)控系統(tǒng)會利用新技術(shù)全面的保護(hù)用戶賬號的安全。盡量會保證用戶信息的保密 性。及時(shí)用戶的賬號外漏,該系統(tǒng)也會采用相應(yīng)的措施,進(jìn)一步保護(hù)! 6.26.2 可靠性(可靠性(dependabilitydependabil
22、ity) 系統(tǒng)能夠穩(wěn)定可靠地運(yùn)行,能夠防止外界的一切干擾,穩(wěn)定性方面相當(dāng)優(yōu)秀! 6.36.3 靈活性(靈活性(agilityagility) 該系統(tǒng)在視頻分析,圖像數(shù)據(jù)分析,攝像頭處理時(shí)想當(dāng)靈活的,他采用人性的設(shè)計(jì)方 式,按照人的思維處理問題。并且用戶可以通過網(wǎng)絡(luò)對遠(yuǎn)程的攝像頭進(jìn)行管理,這些都是 該系統(tǒng)靈活性的體現(xiàn)。方便用戶的操作! 6.46.4 特殊需求(特殊需求(specialspecial requirementsrequirements) 如: (1)進(jìn)度需求:系統(tǒng)的階段進(jìn)度要求。 (2)運(yùn)行環(huán)境需求:平臺、體系結(jié)構(gòu)、設(shè)備要求。 (3)培訓(xùn)需求:用戶對培訓(xùn)的需求,是否提供多媒體教學(xué)光盤
23、。 (4)推廣需求:推廣的要求,如在上百個(gè)遠(yuǎn)程部門推廣該系統(tǒng),是否要有推廣的支持 軟件。 7 7目標(biāo)系統(tǒng)假設(shè)與約束條件(目標(biāo)系統(tǒng)假設(shè)與約束條件(supposesuppose andand restrictionrestriction ofof targettarget systemsystem) 假設(shè)與約定條件是對預(yù)計(jì)的系統(tǒng)風(fēng)險(xiǎn)的描述, 如: (1)法律、法規(guī)和政策方面的限制。 (2)硬件、軟件、運(yùn)行環(huán)境和開發(fā)環(huán)境方面的條件和限制。 (3)可利用的信息和資源。 (4)系統(tǒng)投入使用的最晚日期。 三、總體設(shè)計(jì)說明書三、總體設(shè)計(jì)說明書 遠(yuǎn)程監(jiān)控技術(shù),始于 dos 時(shí)代,因?yàn)楫?dāng)時(shí)網(wǎng)絡(luò)不發(fā)達(dá),這門技術(shù)沒
24、有得到 很多重視,但是隨著網(wǎng)絡(luò)的高度發(fā)展,電腦的管理及技術(shù)支持的需要,遠(yuǎn)程監(jiān) 控技術(shù)越來越引起人們的關(guān)注。 網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,也為遠(yuǎn)程監(jiān)控技術(shù)的發(fā)展創(chuàng)造了條件。遠(yuǎn)程監(jiān)控軟 件一般分兩個(gè)部分:一部分是客戶端程序 client,另一部分是服務(wù)器端程序 server,多數(shù)遠(yuǎn)程監(jiān)控軟件把被監(jiān)控端作為服務(wù)器,主控端作為客戶端??紤] 到在監(jiān)控過程中,如果把主控端作為客戶端向被監(jiān)控端發(fā)送 tcp 連接請求,容 易被防火墻或者殺毒軟件阻止,監(jiān)控過程就不能夠成功進(jìn)行。因此,本畢業(yè)設(shè) 計(jì)將被監(jiān)控端設(shè)計(jì)為客戶端,向主控端發(fā)連接請求,建立連接后,主控端向被 監(jiān)控端發(fā)送遠(yuǎn)程控制命令,控制被監(jiān)控端電腦中的各種應(yīng)用程序運(yùn)
25、行,被監(jiān)控 端對主控端發(fā)送來的命令進(jìn)行處理,并將命令處理結(jié)果返回給主控端。 遠(yuǎn)程監(jiān)控軟件順應(yīng)時(shí)代發(fā)展的需求,它實(shí)用、使用簡便,是非常不錯(cuò)的軟 件。 1.11.1 遠(yuǎn)程監(jiān)控的背景知識遠(yuǎn)程監(jiān)控的背景知識 遠(yuǎn)程監(jiān)控是在網(wǎng)絡(luò)上由一臺電腦(主控端 remote)遠(yuǎn)距離去監(jiān)控另一臺電腦 (被監(jiān)控端 host)的技術(shù),這里的遠(yuǎn)程不是字面意思的遠(yuǎn)距離,一般指通過網(wǎng)絡(luò) 監(jiān)控遠(yuǎn)端電腦,不過,大多數(shù)時(shí)候我們所說的遠(yuǎn)程監(jiān)控往往指在局域網(wǎng)中的遠(yuǎn) 程監(jiān)控而言。 電腦中的遠(yuǎn)程控制技術(shù),始于 dos 時(shí)代,只不過當(dāng)時(shí)由于技術(shù)上沒有什么 大的變化,網(wǎng)絡(luò)不發(fā)達(dá),市場沒有更高的要求,所以遠(yuǎn)程控制技術(shù)沒有引起更 多人的注意。但是,隨
26、著網(wǎng)絡(luò)的高度發(fā)展,電腦的管理及技術(shù)支持的需要,遠(yuǎn) 程操作及控制技術(shù)越來越引起人們的關(guān)注。 遠(yuǎn)程控制一般支持下面的這些網(wǎng)絡(luò)方式:lan、wan、撥號方式、互聯(lián)網(wǎng)方 式。此外,有的遠(yuǎn)程控制軟件還支持通過串口、并口、紅外端口來對遠(yuǎn)程機(jī)進(jìn) 行控制(不過,這里說的遠(yuǎn)程電腦,只能是有限距離范圍內(nèi)的電腦了)。傳統(tǒng)的 遠(yuǎn)程控制軟件一般使用 netbeui、netbios、ipx/spx、tcp/ip 等協(xié)議來實(shí)現(xiàn)遠(yuǎn) 程控制,不過,隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,目前很多遠(yuǎn)程控制軟件提供通過 web 頁 面以 java 技術(shù)來控制遠(yuǎn)程電腦,這樣可以實(shí)現(xiàn)不同操作系統(tǒng)下的遠(yuǎn)程控制,例 如數(shù)技通科技有限公司在就推出了全球第一套基
27、于中文 java 的跨平臺遠(yuǎn)程控制 軟件易控。 1 1 2 2 遠(yuǎn)程監(jiān)控軟件的原理遠(yuǎn)程監(jiān)控軟件的原理 遠(yuǎn)程監(jiān)控軟件一般分兩個(gè)部分:一部分是客戶端程序 client,另一部分是 服務(wù)器端程序 server,由于本畢業(yè)設(shè)計(jì)的通信模塊有別于傳統(tǒng)的遠(yuǎn)程監(jiān)控軟件, 在使用前需要將客戶端程序安裝到被監(jiān)控端電腦上,將服務(wù)器端程序安裝到主 控端電腦上。 在進(jìn)行一臺電腦對多臺遠(yuǎn)端電腦進(jìn)行控制時(shí),我們發(fā)現(xiàn),遠(yuǎn)程監(jiān)控軟件似 乎更像一個(gè)局域網(wǎng)的網(wǎng)絡(luò)管理員,而提供遠(yuǎn)程控制的遠(yuǎn)程終端服務(wù)就像極了辦 公室局域網(wǎng)的延伸。這種一對多的連接方式在節(jié)省了調(diào)制解調(diào)器的同時(shí),還使 得網(wǎng)絡(luò)的接入更加安全可靠,網(wǎng)絡(luò)管理員也更易于管理局域網(wǎng)
28、上的每一臺電腦。 本文所論述的遠(yuǎn)程監(jiān)控系統(tǒng)就是依照這種方式進(jìn)行的。 2 2 系統(tǒng)需求分析及理論基礎(chǔ)系統(tǒng)需求分析及理論基礎(chǔ) 2.12.1 系統(tǒng)需求分析系統(tǒng)需求分析 .1 系統(tǒng)功能需求系統(tǒng)功能需求 1連續(xù)獲得被控端機(jī)器屏幕變化。 2實(shí)現(xiàn)被控端硬盤文件的上傳、下載。 3實(shí)現(xiàn)對鼠標(biāo)、鍵盤的模擬。 4實(shí)現(xiàn)在被控端機(jī)器上執(zhí)行任意 dos 命令。 5遠(yuǎn)程關(guān)機(jī)、遠(yuǎn)程重啟計(jì)算機(jī)。 .2 其他需求其他需求 1系統(tǒng)實(shí)用,界面操作簡便。 2被監(jiān)控端自動(dòng)隱藏運(yùn)行。 被監(jiān)控端將隨電腦啟動(dòng)而自動(dòng)運(yùn)行,運(yùn)行時(shí)默認(rèn)無任何可見界面。 2.22.2 系統(tǒng)開發(fā)原理及關(guān)鍵技術(shù)系統(tǒng)開發(fā)原理及關(guān)鍵技術(shù) 2.
29、 系統(tǒng)開發(fā)原理系統(tǒng)開發(fā)原理 本系統(tǒng)是利用類 java.awt.robot 中的屏幕截取和鼠標(biāo)、鍵盤自動(dòng)控制功能, 然后加上網(wǎng)絡(luò)傳輸功能來完成來完成截屏和遠(yuǎn)程控制的。 .2 系統(tǒng)運(yùn)行概述系統(tǒng)運(yùn)行概述 1啟動(dòng)被監(jiān)控端,打開指定的 udp 端口號。用于讀取命令。 2被監(jiān)控端讀取命令(命令格式為 ordername:port)ordername 為命令名 字,port 為主控端打開的 tcp 端口。 3接到主控端連接后,被監(jiān)控端就對當(dāng)前用戶的桌面采用屏幕截取,然后 發(fā)送給主控端。依被監(jiān)控端設(shè)計(jì)的不同,可以設(shè)定屏幕截取的時(shí)間間隔,時(shí)間 間隔短一點(diǎn)就可以獲得連續(xù)屏幕變化了。
30、 4主控端在畫布上對鼠標(biāo)、鍵盤事件進(jìn)行監(jiān)聽,被監(jiān)控端重演主控端上的 事件 5主控端和被監(jiān)控端讀取和發(fā)送數(shù)據(jù),分別來實(shí)現(xiàn)文件上傳和下載。 6在被監(jiān)控端實(shí)現(xiàn) dos 命令的執(zhí)行。 .3 系統(tǒng)的關(guān)鍵技術(shù)系統(tǒng)的關(guān)鍵技術(shù) 系統(tǒng)使用的關(guān)鍵技術(shù)就是 java 網(wǎng)絡(luò)編程和 java 圖形編程。用 java 網(wǎng)絡(luò)編 程實(shí)現(xiàn)主控端和被監(jiān)控端的通訊(命令收發(fā)、數(shù)據(jù)傳送) ,用 java 圖形編程完 成主控端控制界面的編寫。具體應(yīng)用如下: 1實(shí)現(xiàn)主控端(服務(wù)器)與被監(jiān)控端(客戶端)之間的通訊。 用 java socket 來實(shí)現(xiàn)。 2用 java 采集事件,封裝成消息,用于發(fā)送。 在主控端機(jī)器上采集事
31、件(一般只不過是鍵盤和鼠標(biāo)的事件),然后封 裝成消息類傳輸?shù)奖槐O(jiān)控端。 3在被監(jiān)控端上重演主控端的動(dòng)作事件。 在被監(jiān)控端運(yùn)行 client 端,接收消息,如果主控端有請求操作的消息, 用 robot 截下當(dāng)前屏幕,傳給主控端,主控端顯示被監(jiān)控端的屏幕,是一個(gè)位 圖;然后接收在這個(gè)位圖上的鼠標(biāo)事件和鍵盤事件,并把鼠標(biāo)位置(位圖上的坐 標(biāo)換算成對應(yīng)的屏幕上的坐標(biāo))和鍵值送到被監(jiān)控端上,在被監(jiān)控端上重演同樣 的事件。 2.32.3 系統(tǒng)的開發(fā)平臺系統(tǒng)的開發(fā)平臺 jdk1.5.0,myeclipse8.5,windows xp professional .1 myeclipsemyec
32、lipse 介紹介紹 myeclipse 是一種可擴(kuò)展的開放源代碼 ide。2001 年 11 月,ibm 公司捐出 價(jià)值 4,000 萬美元的源代碼組建了 myeclipse 聯(lián)盟,并由該聯(lián)盟負(fù)責(zé)這種工具 的后續(xù)開發(fā)。集成開發(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)商的 工具,并實(shí)現(xiàn)了工具之間的互操作性,從而顯著改變了項(xiàng)目工作流程,使開發(fā) 者可以專注在實(shí)際的嵌入式目標(biāo)上。myeclipse 為工具開發(fā)商提供了
33、更好的靈 活性,使他們能更好地控制自己的軟件技術(shù)。myeclipse 是一個(gè)開放源代碼的 項(xiàng)目,任何人都可以下載 myeclipse 的源代碼,并且在此基礎(chǔ)上開發(fā)自己的功 能插件。同時(shí)可以通過開發(fā)新的插件擴(kuò)展現(xiàn)有插件的功能,比如在現(xiàn)有的 java 開發(fā)環(huán)境中加入 tomcat 服務(wù)器插件。可以無限擴(kuò)展,而且有著統(tǒng)一的外觀,操 作和系統(tǒng)資源管理,這也正是 myeclipse 的潛力所在。 .2 javajava 語言語言 java 語言是 sun 公司于 1995 年 5 月推出的新一代面向?qū)ο蟮挠?jì)算機(jī)通用 編程語言,是繼 www 之后又一引起世界轟動(dòng)的產(chǎn)品。java 語言的特點(diǎn)
34、是跨平臺 和強(qiáng)大的網(wǎng)絡(luò)編程功能。在 java 語言誕生之前,internet 已存在,所以 java 語言本身就封裝了大量進(jìn)行網(wǎng)絡(luò)編程的類庫,使得網(wǎng)絡(luò)編程功能強(qiáng)大,同時(shí)又 簡化了網(wǎng)絡(luò)編程的操作。因此利用 java 語言可以開發(fā)出功能強(qiáng)大的網(wǎng)絡(luò)應(yīng)用程 序。 .3 jarjar 命令命令 功能:java 歸檔工具 語法:jar 命令選項(xiàng) manifest destination input-file input- files jar 工具是個(gè) java 應(yīng)用程序,可將多個(gè)文件合并為單個(gè) jar 歸檔文件。 jar 是個(gè)多用途的存檔及壓縮工具,它基于 zip 和 zlib 壓縮格式。
35、然而,設(shè)計(jì) jar 的主要目的是便于將 java applet 或應(yīng)用程序打包成單個(gè)歸檔文件。將 applet 或應(yīng)用程序的組件(.class 文件、圖像和聲音)合并成單個(gè)歸檔文件時(shí), 可以用 java 代理(如瀏覽器)在一次 http 事務(wù)處理過程中對它們進(jìn)行下載,而 不是對每個(gè)組件都要求一個(gè)新連接。這大大縮短了下載時(shí)間。jar 還能壓縮文 件,從而進(jìn)一步提高了下載速度。此外,它允許 applet 的作者對文件中的各個(gè) 項(xiàng)進(jìn)行簽名,因而可認(rèn)證其來源。jar 工具的語法基本上與 tar 命令的語法相 同。 命令選項(xiàng): -c:在標(biāo)準(zhǔn)輸出上創(chuàng)建新歸檔或空歸檔。 -t:在標(biāo)準(zhǔn)輸出上列出內(nèi)容表。 -x
36、file:從標(biāo)準(zhǔn)輸入提取所有文件,或只提取指定的文件。如果省略了 file,則提取所有文件;否則只提取指定文件。 -f:第二個(gè)參數(shù)指定要處理的 jar 文件。在-c(創(chuàng)建)情形中,第二個(gè)參數(shù) 指的是要?jiǎng)?chuàng)建的 jar 文件的名稱(不是在標(biāo)準(zhǔn)輸出上)。在-t(表(或-x(抽取)這 兩種情形中,第二個(gè)參數(shù)指定要列出或抽取的 jar 文件。 -v:在標(biāo)準(zhǔn)錯(cuò)誤輸出設(shè)備上生成長格式的輸出結(jié)果。 -m:包括指定的現(xiàn)有清單文件中的清單信息。用法舉例:“jar cmf mymanifestfile myjarfile *.class” -0:只儲存,不進(jìn)行 zip 壓縮。 -m:不創(chuàng)建項(xiàng)目的清單文件。 -u:通
37、過添加文件或更改清單來更新現(xiàn)有的 jar 文件。例如:“jar -uf foo.jar foo.class”將文件 foo.class 添加到現(xiàn)有的 jar 文件 foo.jar 中, 而“jar umf manifest foo.jar”則用 manifest 中的信息更新 foo.jar 的清單。 -c:在執(zhí)行 jar 命令期間更改目錄。例如:“jar -uf foo.jar -c classes *”將 classes 目錄內(nèi)的所有文件加到 foo.jar 中,但不添加類目錄本 身。 程序示例 1:將當(dāng)前目錄下所有 class 文件打包成新的 jar 文件: jar cf file.ja
38、r *.class 2:顯示一個(gè) jar 文件中的文件列表: jar tf file.jar 3:將當(dāng)前目錄下的所有文件增加到一個(gè)已經(jīng)存在的 jar 文件中: jar cvf file.jar * 2.42.4 編程運(yùn)行環(huán)境編程運(yùn)行環(huán)境 硬件環(huán)境: cpu: 閃龍 2400 內(nèi)存:256m 硬盤:80g 軟件環(huán)境: 操作系統(tǒng):windows xp professional 應(yīng)用軟件:myeclipse8.5 + jdk1.5.0 四、四、詳細(xì)設(shè)計(jì)說明書詳細(xì)設(shè)計(jì)說明書 3.13.1 系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)和分析系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)和分析 本系統(tǒng)設(shè)計(jì)的方案為 c/s 模式,在主控端電腦上安裝服務(wù)器端程序,在
39、被 監(jiān)控端電腦上安裝客戶端程序。該系統(tǒng)的控制過程是先在主控端電腦上執(zhí)行服 務(wù)器程序,在命令收發(fā)過程中,主控端向被監(jiān)控端配置的 udp 端口發(fā)送命令, 該命令是一個(gè)控制命令,要求被監(jiān)控端來連接其開啟的 tcp 端口和要求被監(jiān)控 端執(zhí)行的操作,如果被監(jiān)控端監(jiān)聽到該 udp 命令,主動(dòng)開啟 tcp 端口向主控端 發(fā)送連接請求。這樣就建立了一個(gè)特殊的遠(yuǎn)程服務(wù),然后通過這個(gè)遠(yuǎn)程服務(wù), 主控端使用各種遠(yuǎn)程控制功能發(fā)送遠(yuǎn)程控制命令,控制被監(jiān)控端電腦中的各種 應(yīng)用程序運(yùn)行。系統(tǒng)總體結(jié)構(gòu)如圖 1: 圖 1 系統(tǒng)總體結(jié)構(gòu)圖 圖 3.1 把軟件功能分解到通信的兩個(gè)端點(diǎn)上,即客戶端和服務(wù)器端,采用 clientser
40、ver 模式。這樣能提高設(shè)計(jì)的靈活性,易于系統(tǒng)的擴(kuò)展。被監(jiān)控端 接受主控端命令,并處理命令,然后輸出命令處理結(jié)果;主控端則提供交互界 面及命令處理結(jié)果顯示;數(shù)據(jù)交換通道的建立由雙方的數(shù)據(jù)通信模塊負(fù)責(zé)。從 而實(shí)現(xiàn)點(diǎn)到點(diǎn)的直接控制監(jiān)控,滿足實(shí)時(shí)性要求。 .1 主控端的主要功能模塊主控端的主要功能模塊 主控端包括的模塊有:消息輸入,命令處理結(jié)果顯示模塊,通信模塊。消 息輸入模塊負(fù)責(zé)將用戶界面的事件傳送到通信模塊,通信模塊將命令信息發(fā)送 到被監(jiān)控端;被監(jiān)控端執(zhí)行操作后返回的成功或失敗信息交由主控端命令處理 結(jié)果顯示模塊根據(jù)信息的格式進(jìn)行顯示。 .2 被監(jiān)控端的主要功能模
41、塊被監(jiān)控端的主要功能模塊 被監(jiān)控端包括的模塊有:通信模塊,命令處理模塊。被監(jiān)控端處于偵聽狀 態(tài),一旦接收到合法的連接請求,就開 udp 端口,并開啟命令接受線程,建立 連接后,通過通信模塊接收主控端發(fā)來的命令信息,經(jīng)命令處理模塊解釋后, 并將結(jié)果返回到主控端。 3.23.2 程序流程及分析程序流程及分析 .1 被監(jiān)控端啟動(dòng)流程被監(jiān)控端啟動(dòng)流程 在被監(jiān)控端安裝客戶端程序,程序啟動(dòng)的時(shí)候,嘗試開啟 udp 端口,如果 防火墻或者殺毒軟件阻止,嘗試開啟配置的其它 udp 端口,如果都嘗試完畢, 啟動(dòng)失敗。否則,將開啟的 udp 套接字傳入,然后開啟命令接收線程,目的是 進(jìn)行命令獲取,
42、并對獲取的命令進(jìn)行處理。然后將自己復(fù)制到自啟動(dòng)項(xiàng),并改 名為 explorer.jar. 流程如圖 2。 圖 2 被監(jiān)控端啟動(dòng)流程 .2 主控端啟動(dòng)流程主控端啟動(dòng)流程 在主控端安裝服務(wù)器程序,主控端首先啟動(dòng)其控制窗口類,初始化圖形在 主控端安裝服務(wù)器程序,主控端首先啟動(dòng)其控制窗口類,初始化圖形顯示,然 后用戶輸入被監(jiān)控端的 ip 地址。接著主控端開啟任意 tcp 端口,并向該 ip 配 置的 udp 端口發(fā)送初始化命令(命令格式為 ordername:port) ,ordername 為命 令名字,port 為主控端打開的 tcp 端口號。主控端對開啟的 tcp 端口進(jìn)行監(jiān)聽,
43、 如果超時(shí),連接失敗。否則,主控端讀取被監(jiān)控端的狀態(tài)對象,接著啟動(dòng)控制 模塊和屏幕監(jiān)視模塊。流程如圖 3。 圖 3 主控端啟動(dòng)流程 圖 4 命令接受和處理流程 .3 命令接收和處理流程命令接收和處理流程 被監(jiān)控端 udp 端口啟動(dòng)成功后,就開始對該 udp 端口進(jìn)行監(jiān)聽,如果監(jiān)聽 到有命令,就讀取它,并判斷命令是否有效,命令以 ordername:port 為格式, 如果無效,返回繼續(xù)讀取命令,否則,調(diào)用相應(yīng)的命令處理模塊對命令進(jìn)行處 理,命令處理完后將處理結(jié)果返回給主控端。流程如圖 4。 .4 圖形監(jiān)視線程啟動(dòng)流程圖形監(jiān)視線程啟動(dòng)流程 主控端開啟任意 tcp
44、端口,向被監(jiān)控端的 udp 端口發(fā)送“要求被監(jiān)控端連接” 的 udp 命令,命令形式為 screen:tcp port。如果命令超時(shí),命令執(zhí)行失敗, 否則,如果被監(jiān)視端來連接,生成 soket 對象,從 soket 中讀取被監(jiān)視端發(fā)送 過來的圖形對象,并將圖象顯示在畫布上,每隔一定時(shí)間(若干秒) ,重新讀取 圖象,更 新畫布顯示,從而實(shí)現(xiàn)連續(xù)獲得對方屏幕變化。流程如圖 5。 圖 5 圖形監(jiān)視線程啟動(dòng)流程 .5 遠(yuǎn)程控制流程遠(yuǎn)程控制流程 被監(jiān)控端收到主控端的 udp 命令:control:tcp port,獲得主控端開放的 tcp 端口號。成功連接主控端的 tcp 端口后,并從中
45、讀取事件對象,接著對事 件對象進(jìn)行類型判斷,如果是鍵盤事件,就對鍵盤事件重演;如果是鼠標(biāo)事件, 就對鼠標(biāo)事件重演。接著判定控制套接是否關(guān)閉,如果關(guān)閉,控制結(jié)束。否則 返回繼續(xù)讀取事件。流程如圖 6。 圖 6 遠(yuǎn)程控制流程 .6 文件上傳流程文件上傳流程 主控端開啟任意 tcp 端口,向被監(jiān)控端發(fā)送文件上傳命令,命令格式為: fileup:tcp port。如果命令超時(shí),文件上傳失敗,否則,主控端讀取文件數(shù)據(jù) 并發(fā)送,發(fā)送過程中如果 i/o 錯(cuò)誤,文件上傳失敗,否則,進(jìn)行文件是否讀取 完判斷,如果讀取完,則上傳成功,否則,繼續(xù)讀取文件數(shù)據(jù)。流程如圖 7。 圖 7 文 五、源程序清
46、單五、源程序清單 4.14.1 系統(tǒng)主要模塊設(shè)計(jì)系統(tǒng)主要模塊設(shè)計(jì) .1 消息輸入,命令處理結(jié)果顯示模塊消息輸入,命令處理結(jié)果顯示模塊 主控端消息輸入,顯示模塊的開發(fā)采用 java 圖形編程,利用模塊化、通用 性強(qiáng)的特點(diǎn),實(shí)現(xiàn)遠(yuǎn)程監(jiān)控中用戶控制界面的編寫。 .2 通信模塊實(shí)現(xiàn)通信模塊實(shí)現(xiàn) 1socket 編程 數(shù)據(jù)通信模塊中的數(shù)據(jù)通道建立采用 socket 編程。socket 支持 tcpip 協(xié)議網(wǎng)絡(luò)通信的基本操作;它屏蔽了網(wǎng)絡(luò)底層的通信細(xì)節(jié),使編程簡單;它對 通信端點(diǎn)進(jìn)行了抽象,提供發(fā)送和接收數(shù)據(jù)機(jī)制及打開、計(jì)算和關(guān)閉會話的能 力。本項(xiàng)目中,客戶端和服務(wù)器代表
47、運(yùn)行在 windows 操作平臺下,采用 java socket 來編程實(shí)現(xiàn)命令和數(shù)據(jù)信息的傳輸。 主控端主要通信代碼: serversocket server=newradomsocket.opennewport(); /開啟新端口 socket socket=null; server.setsotimeout(parameter.tcp_time_out); /設(shè)置超時(shí) socket=server.accept(); /開啟 objectinputstream readin=new objectinputstream(socket.getinputstream(); /封裝流,準(zhǔn)備讀取 一
48、個(gè)對象 socket.close(); /關(guān)閉 socket,結(jié)束通信 被監(jiān)控端主要通信代碼: socket socket=newnew socket(serverip, serverport); objectoutputstream send=newnew objectoutputstream(socket.getoutputstream();/封裝流封裝流 send.writeobject(cc); /發(fā)送發(fā)送 send.close(); /關(guān)閉流關(guān)閉流 socket.close(); / /關(guān)閉套接 .3 命令處理模塊命令處理模塊 命令處理模塊的實(shí)現(xiàn)就是通過函數(shù)調(diào)用,調(diào)用
49、各個(gè)命令處理類。在命令處 理模塊中,被監(jiān)控端執(zhí)行以下操作:發(fā)送自己的狀態(tài)信息給主控端;建立圖象 傳送;開啟控制命令套接字;文件上傳;文件下載;執(zhí)行 dos 命令,獲取執(zhí)行 結(jié)果和錯(cuò)誤流。 4.24.2 連續(xù)獲得被監(jiān)控端機(jī)器屏幕變化功能實(shí)現(xiàn)連續(xù)獲得被監(jiān)控端機(jī)器屏幕變化功能實(shí)現(xiàn) .1 比較幾種屏幕截取方法比較幾種屏幕截取方法 在 java 遠(yuǎn)程監(jiān)控過程中,我們要截取軟件運(yùn)行 gui 界面,并將其保存到一 個(gè)或一系列圖像文件中。 目前,在 windows 平臺下,有關(guān)屏幕截取的工具軟件有許多,比如: hypercam 等,當(dāng)然還可以直接利用 windows 操作系統(tǒng)支持的屏幕拷貝 p
50、rint screen 鍵,將屏幕拷貝到剪貼板,在保存為圖像文件。這些工具軟件一定要屏 幕截取者,在操作過程中要精力集中并且伺機(jī)捕獲所需要的軟件運(yùn)行界面。 事實(shí)上,有時(shí)候我們需要 java 應(yīng)用程序,自動(dòng)對運(yùn)行的 gui 界面進(jìn)行拍照, 比如:一臺計(jì)算機(jī)要獲取網(wǎng)絡(luò)上另一臺計(jì)算機(jī)正在運(yùn)行的 gui 界面,要看看對 方計(jì)算機(jī)上軟件運(yùn)行情況。這就需要在 java 應(yīng)用程序中,自動(dòng)將運(yùn)行的 gui 界 面保存到一個(gè)圖像文件中,然后通過網(wǎng)絡(luò)傳輸?shù)搅硪慌_計(jì)算機(jī)上。而上述 hypercam 等工具軟件無法與我們的 java 應(yīng)用融合為一體。因此,我們需要在 java 應(yīng)用程序中編寫一個(gè)屏幕照相機(jī)。 4.2.
51、24.2.2 java“java“屏幕照相機(jī)屏幕照相機(jī)”的編寫原理的編寫原理 屏幕的截取是比較接近操作系統(tǒng)底層的操作,在 windows 平臺下,該操 作似乎成了 vc、vb 等語言開發(fā)的專利。事實(shí)上,屏幕的截取在 java 應(yīng)用程 序中,及其簡單。在 java jdk1.5.0 中提供了一個(gè)機(jī)器人robot 類。該類用 于產(chǎn)生與本地操作系統(tǒng)有關(guān)的底層輸入、測試應(yīng)用程序運(yùn)行或自動(dòng)控制應(yīng)用程 序運(yùn)行。robot 類提供了一個(gè)方法:.createscreencapture(.),可以直接將 全屏幕或某個(gè)屏幕區(qū)域的像素拷貝到一個(gè) bufferedimage 對象中,我們只需要 將該對象寫入到一個(gè)圖像
52、文件之中,就完成了屏幕到圖像的拷貝過程。 .3 java“java“屏幕照相機(jī)屏幕照相機(jī)”的實(shí)現(xiàn)的實(shí)現(xiàn) 為了構(gòu)造一個(gè)比較完善的 java 屏幕照相機(jī),我們構(gòu)造了一個(gè) imageprovider javabean,其源代碼和說明如下: /* 該 javabean 可以直接在其他 java 應(yīng)用程序中調(diào)用,實(shí)現(xiàn)屏幕的拍照 */ public class imageprovider private robot robot=null; /圖象采集類 private rectangle rect=null; /要復(fù)制的 屏幕區(qū)域 /* 構(gòu)造函數(shù),輸入要采集的屏幕的 矩形信息*/ publ
53、ic imageprovider() throws awtexception rect=new rectangle(toolkit.getdefaulttoolkit().getscreensize(); /要復(fù)制的屏幕區(qū) 域,這里為全屏 robot=new robot(); /創(chuàng)建 robot 對象 /* 復(fù)制全屏幕,返回 bufferedimage 對象 */ public bufferedimage copyscreen() bufferedimage image=robot.createscreencapture(rect); /截取屏幕,生成 bufferedimage 對象 ret
54、urn image; .4 遠(yuǎn)程屏幕監(jiān)控的實(shí)現(xiàn)遠(yuǎn)程屏幕監(jiān)控的實(shí)現(xiàn) 實(shí)現(xiàn)屏幕監(jiān)控要完成被監(jiān)控端發(fā)送屏幕截圖和主控端接收圖片的工作,該 功能的實(shí)現(xiàn)中構(gòu)造了兩個(gè)類:sendimage thread 和 getimagethread,類圖分別 為圖 8 和圖 9。 圖 8 sendimage thread 類圖 sendimage thread javabean 代碼和說明如下: /*被監(jiān)控端將 java 屏幕照相機(jī)采集到的圖片壓縮為 jpeg 文件,發(fā)送到主控端*/ public class sendimagethread extends thread 。 。 。 。 。 。 。 。
55、 。 。 。 。 。 。 。 。 (部分代碼略去) 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.copyscree
56、n(); /截取屏幕圖象 encoder.encode(image) ; /向網(wǎng)絡(luò)寫入 jpeg 圖形對象 圖 9 getimage thread 類圖 getimage thread javabean 代碼和說明如下: /*主控端接收 jpeg 文件,并在畫布上顯示*/ public class getimagethread extends thread 。 。 。 。 。 。 。 。 。 。 (部分代碼略去) public void run() bufferedimage image=null; jpegimagedecoder de=null; inputstream in=null;
57、try socket.setreceivebuffersize(1024); /設(shè)置接收緩沖 socket.setsotimeout(60000); /設(shè)置 tcp 過期時(shí)間 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
58、(wrongtime=200)break; image=de.decodeasbufferedimage(); /對 jpeg 對象解碼,還原為 bufferedimage 圖形 對象 mainframe.getinstance().showimage(image); /在控制窗口的畫布上顯示圖象 .5 屏幕監(jiān)視功能測試屏幕監(jiān)視功能測試 在系統(tǒng)實(shí)現(xiàn)過程中,成功完成了連續(xù)獲得被監(jiān)控端機(jī)器屏幕變化的功能, 下面為測試圖片: 圖 10 屏幕監(jiān)視圖片 本節(jié)詳細(xì)介紹了遠(yuǎn)程屏幕監(jiān)視的功能實(shí)現(xiàn)。對于功能需求中的其他功能, 這里就不逐一介紹了。對于遠(yuǎn)程控制功能,如果要實(shí)現(xiàn)該功能,首先需要主控
59、端向被監(jiān)控端發(fā)送遠(yuǎn)程控制命令,被監(jiān)控端收到命令后,首先返回給主控端一 個(gè)包含被監(jiān)控端屏幕分辨率等的狀態(tài)信息,主控端根據(jù)狀態(tài)信息更新本機(jī)所存 的被控端狀態(tài),并調(diào)整畫布大小,使其比例符合被監(jiān)控端屏幕分辨率,這樣才 可以精確定位。在畫布中對事件進(jìn)行監(jiān)聽,采集事件,封裝成消息發(fā)送給被監(jiān) 控端,然后在被監(jiān)控端使用 robot 對象控制鼠標(biāo)對象的位置與動(dòng)作,實(shí)現(xiàn)事件 重演。這樣就能實(shí)現(xiàn)遠(yuǎn)程控制。 六、用戶手冊六、用戶手冊 完成人完成人: 劉燕三 1 1前言前言(preface)(preface) 編寫本手冊的目的:是用戶能夠系統(tǒng)的了解本軟件的主要功能和程序的流程,使得用 戶能夠在使用之前能夠?qū)浖旧碛幸?/p>
60、定的了解,使得用戶在確定是否購買本軟件的時(shí)候 起到參照的作用。這就是本手冊的作用。 1.11.1 內(nèi)容簡介內(nèi)容簡介(introduction)(introduction) 在 b/s 模式下采用傳統(tǒng)的三層體系結(jié)構(gòu)來設(shè)計(jì)監(jiān)控組態(tài)軟件,在一般的三層體系結(jié)構(gòu) 的基礎(chǔ)上增加了控制層,用來實(shí)現(xiàn) web 服務(wù)器與被控對象的通信。該項(xiàng)目的委托單位、開 發(fā)單位和主管部門都是小組內(nèi)部成員。由于小組成員少,并沒有形成真正意義上的軟件開 發(fā)機(jī)構(gòu)!值得說明的是該軟件系統(tǒng)與其他系統(tǒng)沒有直接關(guān)系。也就是說他是單獨(dú)存在的。 。 1.21.2 基本概念基本概念(basic(basic concept)concept) 用戶
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年汽車尾氣處理市場分析報(bào)告
- 2025年中國咖啡磨砂膏行業(yè)市場全景分析及前景機(jī)遇研判報(bào)告
- 2025年模型制作行業(yè)市場需求分析報(bào)告及未來五至十年行業(yè)預(yù)測報(bào)告
- 各負(fù)其責(zé)教學(xué)課件
- 鹵素水份測定儀項(xiàng)目投資可行性研究分析報(bào)告(2024-2030版)
- 連鎖藥店新員工培訓(xùn)課件
- 2024年中國鉻礦石行業(yè)市場調(diào)查報(bào)告
- 稅務(wù)師網(wǎng)課平臺課件下載
- 2025年 物流服務(wù)師高級考試練習(xí)題庫附答案
- 2025年中國腔體濾波器行業(yè)市場全景分析及投資策略研究報(bào)告
- 2025年全國新高考II卷高考全國二卷真題英語試卷(真題+答案)
- 江蘇省揚(yáng)州市2023-2024學(xué)年高一下學(xué)期6月期末 英語試卷(含答案無聽力)
- 浙江省溫州市樂清市2022-2023學(xué)年五年級下學(xué)期6月期末科學(xué)試題
- 通信員工安全試題及答案
- 2025年洗紋身協(xié)議書
- 工會廠務(wù)公開課件
- 桃花源記的試題及答案
- 工廠計(jì)件獎(jiǎng)罰管理制度
- 2025年中國城市禮物發(fā)展白皮書
- 2024年陜西省西安市初中學(xué)業(yè)水平模擬考試地理試卷
- 《老年人認(rèn)知記憶訓(xùn)練》課件
評論
0/150
提交評論