




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、畢業設計(論文)基于java c/s遠程監控系統軟件的實現論文作者姓名:申請學位專業:申請學位類別:指導教師姓名(職稱):論文提交日期:基于java c/s遠程監控系統軟件的實現摘 要近年來,網絡技術的不斷發展,為遠程監控技術的發展創造了條件。遠程監控系統軟件越來越受到人們的重視,其實用性也毋庸質疑。基于java c/s遠程監控系統軟件突破了空間的限制,使用者不用親臨,在自己的電腦面前就能輕松的實現對被監控端機器的監控。本系統采用java網絡編程和java圖形編程實現。筆者在開發過程中將網絡技術與遠程監控理論基礎相結合,實現了以下功能:能連續獲得被監控端機器屏幕變化;實現被監控端硬盤文件的上傳
2、、下載;實現對鼠標、鍵盤的模擬;實現在遠程機器上執行任意dos命令;遠程關機、遠程重啟計算機,方便了用戶監視和操作被監控端機器。本系統從系統需求分析、概要設計、詳細設計到具體的編碼實現和后期的代碼優化、功能測試都嚴格遵循了軟件工程的思想。關鍵詞:遠程監控;java robot;屏幕截取;java socketthe implementation of the remote control system software based on java technology and the c/s modeabstractin recent years, the continuous develop
3、ment of the internet technology provides remote control technology with condition for its development. without any suspicion to its practicability, people pay more and more attention to remote control technology system software. remote control technology system software based on java technology and
4、the c/s mode, breaks the restriction of space. the system adopts network programming and graphic programming with java, and the users controlling the remote computer easily. in the process of research, the author united network programming and remote control theory together, which allows the system
5、to successfully achieve the following functions: continuously obtaining the remote computer screen; uploading and downloading the document from the remote computer and the simulation of mouse and keyboard; controlling the remote machines to execute any dos commands; turning off and restarting the co
6、mputer. from the system requirements analyses, general design, coding and the code optimization, function testing, the remote control technology system strictly keeps to the ideas of software engineering.key words: remote control technology; java robot; screen capture; java socket目 錄論文總頁數:21頁1 引 言11
7、.1 遠程監控的背景知識11 2 遠程監控軟件的原理22 系統需求分析及理論基礎32.1 系統需求分析32.1.1 系統功能需求32.1.2 其他需求32.2 系統開發原理及關鍵技術32.2.1 系統開發原理32.2.2 系統運行概述32.2.3 系統的關鍵技術32.3 系統的開發平臺42.3.1 eclipse介紹42.3.2 java語言42.3.3 jar命令42.4 編程運行環境63 遠程監控系統系統設計63.1 系統總體結構設計和分析63.1.1 主控端的主要功能模塊73.1.2 被監控端的主要功能模塊73.2 程序流程及分析73.2.1 被監控端啟動流程73.2.2 主控端啟動流程
8、73.2.3 命令接收和處理流程93.2.4 圖形監視線程啟動流程93.2.5 遠程控制流程93.2.6 文件上傳流程104 系統主要模塊設計和具體功能實現114.1 系統主要模塊設計114.1.1 消息輸入,命令處理結果顯示模塊114.1.2 通信模塊實現114.1.3 命令處理模塊124.2 連續獲得被監控端機器屏幕變化功能實現124.2.1 比較幾種屏幕截取方法124.2.2 java“屏幕照相機”的編寫原理124.2.3 java“屏幕照相機”的實現124.2.4 遠程屏幕監控的實現134.2.5 屏幕監視功能測試155 系統運行及測試結果155.1 測試方法155.2 測試環境165
9、 3 系統運行實例165.3.1 連續獲得被監控端機器屏幕變化功能165.3.2 實現被監控端硬盤文件的上傳、下載165.3.3 實現對鼠標、鍵盤的模擬175.3.4 實現在被監控端機器上執行任意dos命令185.3.5 遠程關機、遠程重啟計算機18結 論19參考文獻19致 謝20聲 明211 引 言近年來,隨著計算機及網絡的應用普及,千千萬萬的人們在娛樂、通訊、學習、工作等各方面都實現了前所未有的信息化,極大地提高了生活質量與工作效率。然而在這種種便利背后,你關注的人在做什么呢?比如:公司員工。因此,遠程監控發揮作用了。這里以公司領導為例,遠程監控系統軟件方便了公司領導人管理公司員工。在一個
10、企業中,作為公司領導人,一定很擔心自己的員工利用上班時間做工作以外的其他事情,也很擔心他們泄露公司機密,等等。有了遠程監控,這樣的擔心就很容易解決,你不用親臨監督每個員工,在自己電腦面前就能對他們的一舉一動了如指掌。遠程監控技術,始于dos時代,因為當時網絡不發達,這門技術沒有得到很多重視,但是隨著網絡的高度發展,電腦的管理及技術支持的需要,遠程監控技術越來越引起人們的關注。網絡技術的不斷發展,也為遠程監控技術的發展創造了條件。遠程監控軟件一般分兩個部分:一部分是客戶端程序client,另一部分是服務器端程序server,多數遠程監控軟件把被監控端作為服務器,主控端作為客戶端。考慮到在監控過程
11、中,如果把主控端作為客戶端向被監控端發送tcp連接請求,容易被防火墻或者殺毒軟件阻止,監控過程就不能夠成功進行。因此,本畢業設計將被監控端設計為客戶端,向主控端發連接請求,建立連接后,主控端向被監控端發送遠程控制命令,控制被監控端電腦中的各種應用程序運行,被監控端對主控端發送來的命令進行處理,并將命令處理結果返回給主控端。遠程監控軟件順應時代發展的需求,它實用、使用簡便,是非常不錯的軟件。1.1 遠程監控的背景知識遠程監控是在網絡上由一臺電腦(主控端remote)遠距離去監控另一臺電腦(被監控端host)的技術,這里的遠程不是字面意思的遠距離,一般指通過網絡監控遠端電腦,不過,大多數時候我們所
12、說的遠程監控往往指在局域網中的遠程監控而言。當操作者使用主控端電腦監控被監控端電腦時,就如同坐在被監控端電腦的屏幕前一樣,可以啟動被監控端電腦的應用程序,可以使用被監控端電腦的文件資料,不過,有一個概念需要明確,那就是主控端電腦只是將鍵盤和鼠標的指令傳送給遠程電腦,同時將被監控端電腦的屏幕畫面通過通信線路回傳過來。也就是說,我們控制被監控端電腦進行操作似乎是在眼前的電腦上進行的,實質是在遠程的電腦中實現的,不論打開文件,還是上網瀏覽、下載等都是存儲在遠程的被監控端電腦中的。電腦中的遠程控制技術,始于dos時代,只不過當時由于技術上沒有什么大的變化,網絡不發達,市場沒有更高的要求,所以遠程控制技
13、術沒有引起更多人的注意。但是,隨著網絡的高度發展,電腦的管理及技術支持的需要,遠程操作及控制技術越來越引起人們的關注。遠程控制一般支持下面的這些網絡方式:lan、wan、撥號方式、互聯網方式。此外,有的遠程控制軟件還支持通過串口、并口、紅外端口來對遠程機進行控制(不過,這里說的遠程電腦,只能是有限距離范圍內的電腦了)。傳統的遠程控制軟件一般使用netbeui、netbios、ipx/spx、tcp/ip等協議來實現遠程控制,不過,隨著網絡技術的發展,目前很多遠程控制軟件提供通過web頁面以java技術來控制遠程電腦,這樣可以實現不同操作系統下的遠程控制,例如數技通科技有限公司在就推出了全球第一
14、套基于中文java的跨平臺遠程控制軟件易控。1 2 遠程監控軟件的原理遠程監控軟件一般分兩個部分:一部分是客戶端程序client,另一部分是服務器端程序server,由于本畢業設計的通信模塊有別于傳統的遠程監控軟件,在使用前需要將客戶端程序安裝到被監控端電腦上,將服務器端程序安裝到主控端電腦上。它的控制的過程是先在被監控端電腦上執行客戶端程序,像一個普通的客戶一樣向主控端電腦中的服務器端程序發出信號,建立一個特殊的遠程服務,然后通過這個遠程服務,接收主控端發送過來的遠程控制命令,并對命令進行處理,最后將命令處理結果返回給主控端,我們稱這種遠程控制方式為基于遠程服務的遠程控制。通過遠程監控軟件,
15、我們可以進行很多方面的遠程控制,包括獲取目標電腦屏幕圖像、窗口及進程列表;記錄并提取遠端鍵盤事件(擊鍵序列,即監視遠端鍵盤輸入的內容);可以打開、關閉目標電腦的任意目錄并實現資源共享;提取撥號網絡及普通程序的密碼;激活、中止遠端程序進程;管理遠端電腦的文件和文件夾;關閉或者重新啟動遠端電腦中的操作系統;修改windows注冊表;通過遠端電腦上、下載文件和捕獲音頻、視頻信號等。前面我們所說的是一臺電腦對一臺電腦的情況,其實,基于遠程服務的遠程控制最適合的模式是一對多,即利用遠程監控軟件,我們可以使用一臺電腦監控多臺電腦,這就使得我們不必為辦公室的每一臺電腦都安裝一個調制解調器,而只需要利用辦公室
16、局域網的優勢就可以輕松實現遠程多點控制了。在進行一臺電腦對多臺遠端電腦進行控制時,我們發現,遠程監控軟件似乎更像一個局域網的網絡管理員,而提供遠程控制的遠程終端服務就像極了辦公室局域網的延伸。這種一對多的連接方式在節省了調制解調器的同時,還使得網絡的接入更加安全可靠,網絡管理員也更易于管理局域網上的每一臺電腦。本文所論述的遠程監控系統就是依照這種方式進行的。2 系統需求分析及理論基礎2.1 系統需求分析2.1.1 系統功能需求1連續獲得被控端機器屏幕變化。2實現被控端硬盤文件的上傳、下載。3實現對鼠標、鍵盤的模擬。4實現在被控端機器上執行任意dos命令。5遠程關機、遠程重啟計算機。2.1.2
17、其他需求1系統實用,界面操作簡便。2被監控端自動隱藏運行。被監控端將隨電腦啟動而自動運行,運行時默認無任何可見界面。2.2 系統開發原理及關鍵技術2.2.1 系統開發原理本系統是利用類java.awt.robot中的屏幕截取和鼠標、鍵盤自動控制功能,然后加上網絡傳輸功能來完成來完成截屏和遠程控制的。2.2.2 系統運行概述1啟動被監控端,打開指定的udp端口號。用于讀取命令。2被監控端讀取命令(命令格式為ordername:port)ordername為命令名字,port為主控端打開的tcp端口。3接到主控端連接后,被監控端就對當前用戶的桌面采用屏幕截取,然后發送給主控端。依被監控端設計的不同
18、,可以設定屏幕截取的時間間隔,時間間隔短一點就可以獲得連續屏幕變化了。4主控端在畫布上對鼠標、鍵盤事件進行監聽,被監控端重演主控端上的事件5主控端和被監控端讀取和發送數據,分別來實現文件上傳和下載。6在被監控端實現dos命令的執行。2.2.3 系統的關鍵技術系統使用的關鍵技術就是java網絡編程和java圖形編程。用java網絡編程實現主控端和被監控端的通訊(命令收發、數據傳送),用java圖形編程完成主控端控制界面的編寫。具體應用如下:1實現主控端(服務器)與被監控端(客戶端)之間的通訊。用java socket來實現。2用java采集事件,封裝成消息,用于發送。在主控端機器上采集事件(一般
19、只不過是鍵盤和鼠標的事件),然后封裝成消息類傳輸到被監控端。3在被監控端上重演主控端的動作事件。在被監控端運行client端,接收消息,如果主控端有請求操作的消息,用robot截下當前屏幕,傳給主控端,主控端顯示被監控端的屏幕,是一個位圖;然后接收在這個位圖上的鼠標事件和鍵盤事件,并把鼠標位置(位圖上的坐標換算成對應的屏幕上的坐標)和鍵值送到被監控端上,在被監控端上重演同樣的事件。2.3 系統的開發平臺jdk1.5.0,eclipse3.1,windows xp professional2.3.1 eclipse介紹eclipse是一種可擴展的開放源代碼ide。2001年11月,ibm公司捐出
20、價值4,000萬美元的源代碼組建了eclipse聯盟,并由該聯盟負責這種工具的后續開發。集成開發環境(ide)經常將其應用范圍限定在“開發、構建和調試”的周期之中。為了幫助集成開發環境 (ide)克服目前的局限性,業界廠商合作創建了eclipse平臺。eclipse允許在同一ide中集成來自不同供應商的工具,并實現了工具之間的互操作性,從而顯著改變了項目工作流程,使開發者可以專注在實際的嵌入式目標上。eclipse為工具開發商提供了更好的靈活性,使他們能更好地控制自己的軟件技術。eclipse是一個開放源代碼的項目,任何人都可以下載eclipse的源代碼,并且在此基礎上開發自己的功能插件。同時
21、可以通過開發新的插件擴展現有插件的功能,比如在現有的java開發環境中加入tomcat服務器插件。可以無限擴展,而且有著統一的外觀,操作和系統資源管理,這也正是eclipse的潛力所在。2.3.2 java語言java語言是sun公司于1995年5月推出的新一代面向對象的計算機通用編程語言,是繼www之后又一引起世界轟動的產品。java語言的特點是跨平臺和強大的網絡編程功能。在java語言誕生之前,internet已存在,所以java語言本身就封裝了大量進行網絡編程的類庫,使得網絡編程功能強大,同時又簡化了網絡編程的操作。因此利用java語言可以開發出功能強大的網絡應用程序。2.3.3 jar
22、命令功能:java歸檔工具語法:jar 命令選項 manifest destination input-file input-files jar工具是個java應用程序,可將多個文件合并為單個jar歸檔文件。jar是個多用途的存檔及壓縮工具,它基于zip和zlib壓縮格式。然而,設計jar的主要目的是便于將java applet或應用程序打包成單個歸檔文件。將applet或應用程序的組件(.class文件、圖像和聲音)合并成單個歸檔文件時,可以用java代理(如瀏覽器)在一次http事務處理過程中對它們進行下載,而不是對每個組件都要求一個新連接。這大大縮短了下載時間。jar還能壓縮文件,從而進
23、一步提高了下載速度。此外,它允許applet的作者對文件中的各個項進行簽名,因而可認證其來源。jar工具的語法基本上與tar命令的語法相同。命令選項:-c:在標準輸出上創建新歸檔或空歸檔。-t:在標準輸出上列出內容表。 -xfile:從標準輸入提取所有文件,或只提取指定的文件。如果省略了file,則提取所有文件;否則只提取指定文件。 -f:第二個參數指定要處理的jar文件。在-c(創建)情形中,第二個參數指的是要創建的jar文件的名稱(不是在標準輸出上)。在-t(表(或-x(抽取)這兩種情形中,第二個參數指定要列出或抽取的jar文件。-v:在標準錯誤輸出設備上生成長格式的輸出結果。 -m:包括
24、指定的現有清單文件中的清單信息。用法舉例:“jar cmf mymanifestfile myjarfile *.class”-0:只儲存,不進行 zip 壓縮。 -m:不創建項目的清單文件。 -u:通過添加文件或更改清單來更新現有的 jar 文件。例如:“jar -uf foo.jar foo.class”將文件 foo.class 添加到現有的jar文件foo.jar中,而“jar umf manifest foo.jar”則用manifest中的信息更新foo.jar的清單。 -c:在執行 jar 命令期間更改目錄。例如:“jar -uf foo.jar -c classes *”將cl
25、asses目錄內的所有文件加到foo.jar中,但不添加類目錄本身。程序示例 1:將當前目錄下所有class文件打包成新的jar文件:jar cf file.jar *.class 2:顯示一個jar文件中的文件列表:jar tf file.jar 3:將當前目錄下的所有文件增加到一個已經存在的jar文件中:jar cvf file.jar * 2.4 編程運行環境硬件環境:cpu: 閃龍2400內存:256m硬盤:80g軟件環境:操作系統:windows xp professional應用軟件:eclipse3.1 + jdk1.5.0 3 遠程監控系統系統設計3.1 系統總體結構設計和分析
26、本系統設計的方案為c/s模式,在主控端電腦上安裝服務器端程序,在被監控端電腦上安裝客戶端程序。該系統的控制過程是先在主控端電腦上執行服務器程序,在命令收發過程中,主控端向被監控端配置的udp端口發送命令,該命令是一個控制命令,要求被監控端來連接其開啟的tcp端口和要求被監控端執行的操作,如果被監控端監聽到該udp命令,主動開啟tcp端口向主控端發送連接請求。這樣就建立了一個特殊的遠程服務,然后通過這個遠程服務,主控端使用各種遠程控制功能發送遠程控制命令,控制被監控端電腦中的各種應用程序運行。系統總體結構如圖1:圖1 系統總體結構圖圖3.1把軟件功能分解到通信的兩個端點上,即客戶端和服務器端,采
27、用clientserver模式。這樣能提高設計的靈活性,易于系統的擴展。被監控端接受主控端命令,并處理命令,然后輸出命令處理結果;主控端則提供交互界面及命令處理結果顯示;數據交換通道的建立由雙方的數據通信模塊負責。從而實現點到點的直接控制監控,滿足實時性要求。3.1.1 主控端的主要功能模塊主控端包括的模塊有:消息輸入,命令處理結果顯示模塊,通信模塊。消息輸入模塊負責將用戶界面的事件傳送到通信模塊,通信模塊將命令信息發送到被監控端;被監控端執行操作后返回的成功或失敗信息交由主控端命令處理結果顯示模塊根據信息的格式進行顯示。3.1.2 被監控端的主要功能模塊被監控端包括的模塊有:通信模塊,命令處
28、理模塊。被監控端處于偵聽狀態,一旦接收到合法的連接請求,就開udp端口,并開啟命令接受線程,建立連接后,通過通信模塊接收主控端發來的命令信息,經命令處理模塊解釋后,并將結果返回到主控端。3.2 程序流程及分析3.2.1 被監控端啟動流程在被監控端安裝客戶端程序,程序啟動的時候,嘗試開啟udp端口,如果防火墻或者殺毒軟件阻止,嘗試開啟配置的其它udp端口,如果都嘗試完畢,啟動失敗。否則,將開啟的udp套接字傳入,然后開啟命令接收線程,目的是進行命令獲取,并對獲取的命令進行處理。然后將自己復制到自啟動項,并改名為explorer.jar. 流程如圖2。圖2 被監控端啟動流程3.2.2 主控端啟動流
29、程在主控端安裝服務器程序,主控端首先啟動其控制窗口類,初始化圖形在主控端安裝服務器程序,主控端首先啟動其控制窗口類,初始化圖形顯示,然后用戶輸入被監控端的ip地址。接著主控端開啟任意tcp端口,并向該ip配置的udp端口發送初始化命令(命令格式為ordername:port),ordername為命令名字,port為主控端打開的tcp端口號。主控端對開啟的tcp端口進行監聽,如果超時,連接失敗。否則,主控端讀取被監控端的狀態對象,接著啟動控制模塊和屏幕監視模塊。流程如圖3。圖3 主控端啟動流程圖4 命令接受和處理流程3.2.3 命令接收和處理流程被監控端udp端口啟動成功后,就開始對該udp端
30、口進行監聽,如果監聽到有命令,就讀取它,并判斷命令是否有效,命令以ordername:port為格式,如果無效,返回繼續讀取命令,否則,調用相應的命令處理模塊對命令進行處理,命令處理完后將處理結果返回給主控端。流程如圖4。3.2.4 圖形監視線程啟動流程主控端開啟任意tcp端口,向被監控端的udp端口發送“要求被監控端連接”的udp命令,命令形式為screen:tcp port。如果命令超時,命令執行失敗,否則,如果被監視端來連接,生成soket對象,從soket中讀取被監視端發送過來的圖形對象,并將圖象顯示在畫布上,每隔一定時間(若干秒),重新讀取圖象,更新畫布顯示,從而實現連續獲得對方屏幕
31、變化。流程如圖5。圖5 圖形監視線程啟動流程3.2.5 遠程控制流程被監控端收到主控端的udp命令:control:tcp port,獲得主控端開放的tcp端口號。成功連接主控端的tcp端口后,并從中讀取事件對象,接著對事件對象進行類型判斷,如果是鍵盤事件,就對鍵盤事件重演;如果是鼠標事件,就對鼠標事件重演。接著判定控制套接是否關閉,如果關閉,控制結束。否則返回繼續讀取事件。流程如圖6。圖6 遠程控制流程3.2.6 文件上傳流程主控端開啟任意tcp端口,向被監控端發送文件上傳命令,命令格式為:fileup:tcp port。如果命令超時,文件上傳失敗,否則,主控端讀取文件數據并發送,發送過程中
32、如果i/o錯誤,文件上傳失敗,否則,進行文件是否讀取完判斷,如果讀取完,則上傳成功,否則,繼續讀取文件數據。流程如圖7。圖7 文件上傳流程4 系統主要模塊設計和具體功能實現4.1 系統主要模塊設計4.1.1 消息輸入,命令處理結果顯示模塊主控端消息輸入,顯示模塊的開發采用java圖形編程,利用模塊化、通用性強的特點,實現遠程監控中用戶控制界面的編寫。4.1.2 通信模塊實現1socket編程數據通信模塊中的數據通道建立采用socket編程。socket支持tcpip協議網絡通信的基本操作;它屏蔽了網絡底層的通信細節,使編程簡單;它對通信端點進行了抽象,提供發送和接收數據機制及打開、計算和關閉會
33、話的能力。本項目中,客戶端和服務器代表運行在windows操作平臺下,采用java socket來編程實現命令和數據信息的傳輸。2通信建立服務器與客戶端開始都必須調用socket()函數產生一個socket套接字。由于讓被監控端開tcp端口,很容易被防火墻和殺毒軟件阻止,監控就難以完成。這里,我們在主控端開tcp端口,等待被監控端來主動連接,這樣監控功能就能更順利的開始。主控端首先創建一個serversocket對象,然后調用serversocket的方法accept實現監聽。如果被監控端來訪問,accept會返回一個socket對象,利用這個對象就可以很輕松的完成服務器和客戶端的數據交換。只
34、有被監控端有請求時才建立連接,建立連接后,客戶端與服務器之間便可以雙向傳輸數據。當得到socket對象后,主控端建立objectinputstream對象,被監控端建立objectoutputstream對象實現消息的接收和發送。完成通信后,調用serversocket和socket對象的close關閉套接字,結束通信。主控端主要通信代碼:serversocket server=newradomsocket.opennewport(); /開啟新端口socket socket=null;server.setsotimeout(parameter.tcp_time_out); /設置超時sock
35、et=server.accept(); /開啟objectinputstream readin=new objectinputstream(socket.getinputstream(); /封裝流,準備讀取一個對象socket.close(); /關閉socket,結束通信被監控端主要通信代碼:socket socket=new socket(serverip, serverport);objectoutputstream send=new objectoutputstream(socket.getoutputstream();/封裝流send.writeobject(cc); /發送sen
36、d.close(); /關閉流socket.close(); /關閉套接4.1.3 命令處理模塊命令處理模塊的實現就是通過函數調用,調用各個命令處理類。在命令處理模塊中,被監控端執行以下操作:發送自己的狀態信息給主控端;建立圖象傳送;開啟控制命令套接字;文件上傳;文件下載;執行dos命令,獲取執行結果和錯誤流。4.2 連續獲得被監控端機器屏幕變化功能實現4.2.1 比較幾種屏幕截取方法在java遠程監控過程中,我們要截取軟件運行gui界面,并將其保存到一個或一系列圖像文件中。目前,在windows平臺下,有關屏幕截取的工具軟件有許多,比如:hypercam等,當然還可以直接利用windows操
37、作系統支持的屏幕拷貝print screen鍵,將屏幕拷貝到剪貼板,在保存為圖像文件。這些工具軟件一定要屏幕截取者,在操作過程中要精力集中并且伺機捕獲所需要的軟件運行界面。事實上,有時候我們需要java應用程序,自動對運行的gui界面進行拍照,比如:一臺計算機要獲取網絡上另一臺計算機正在運行的gui界面,要看看對方計算機上軟件運行情況。這就需要在java應用程序中,自動將運行的gui界面保存到一個圖像文件中,然后通過網絡傳輸到另一臺計算機上。而上述hypercam等工具軟件無法與我們的java應用融合為一體。因此,我們需要在java應用程序中編寫一個屏幕照相機。4.2.2 java“屏幕照相機
38、”的編寫原理屏幕的截取是比較接近操作系統底層的操作,在windows平臺下,該操作似乎成了vc、vb等語言開發的專利。事實上,屏幕的截取在java應用程序中,及其簡單。在java jdk1.5.0 中提供了一個機器人robot類。該類用于產生與本地操作系統有關的底層輸入、測試應用程序運行或自動控制應用程序運行。robot類提供了一個方法:.createscreencapture(.),可以直接將全屏幕或某個屏幕區域的像素拷貝到一個bufferedimage對象中,我們只需要將該對象寫入到一個圖像文件之中,就完成了屏幕到圖像的拷貝過程。4.2.3 java“屏幕照相機”的實現為了構造一個比較完善
39、的java屏幕照相機,我們構造了一個imageprovider javabean,其源代碼和說明如下:/* 該javabean可以直接在其他java應用程序中調用,實現屏幕的拍照 */public class imageprovider private robot robot=null; /圖象采集類private rectangle rect=null; /要復制的 屏幕區域/* 構造函數,輸入要采集的屏幕的 矩形信息*/public imageprovider() throws awtexceptionrect=new rectangle(toolkit.getdefaulttoolkit
40、().getscreensize(); /要復制的屏幕區域,這里為全屏robot=new robot(); /創建robot對象/* 復制全屏幕,返回bufferedimage對象 */public bufferedimage copyscreen()bufferedimage image=robot.createscreencapture(rect); /截取屏幕,生成bufferedimage對象return image;4.2.4 遠程屏幕監控的實現實現屏幕監控要完成被監控端發送屏幕截圖和主控端接收圖片的工作,該功能的實現中構造了兩個類:sendimage thread和getimage
41、thread,類圖分別為圖8和圖9。圖8 sendimage thread類圖sendimage thread javabean 代碼和說明如下:/*被監控端將java屏幕照相機采集到的圖片壓縮為jpeg文件,發送到主控端*/public class sendimagethread extends thread。(部分代碼略去)public void run() int i=0; outputstream out=null; jpegimageencoder encoder=null; /壓縮為jpegtry out = client.getoutputstream(); /獲得tcp套接字流
42、 encoder=jpegcodec.createjpegencoder(out);/將流壓縮為jpeg對象流 catch (ioexception e1) e1.printstacktrace(); while(true) image=impv.copyscreen(); /截取屏幕圖象 encoder.encode(image) ; /向網絡寫入jpeg圖形對象圖9 getimage thread類圖getimage thread javabean 代碼和說明如下:/*主控端接收jpeg文件,并在畫布上顯示*/public class getimagethread extends thre
43、ad。(部分代碼略去)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) / to
44、do 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); /在控制窗口的畫布上顯示圖象 4.2.5 屏幕監視功能測試在系統實現過程中,成功完成了連續獲得被監控端機器屏幕變化的功能,下面為測試圖片:圖10 屏幕監視
45、圖片本節詳細介紹了遠程屏幕監視的功能實現。對于功能需求中的其他功能,這里就不逐一介紹了。對于遠程控制功能,如果要實現該功能,首先需要主控端向被監控端發送遠程控制命令,被監控端收到命令后,首先返回給主控端一個包含被監控端屏幕分辨率等的狀態信息,主控端根據狀態信息更新本機所存的被控端狀態,并調整畫布大小,使其比例符合被監控端屏幕分辨率,這樣才可以精確定位。在畫布中對事件進行監聽,采集事件,封裝成消息發送給被監控端,然后在被監控端使用robot對象控制鼠標對象的位置與動作,實現事件重演。這樣就能實現遠程控制。5 系統運行及測試結果5.1 測試方法采用自下往上的測試方法,先進行單元測試,再集成測試。5
46、.2 測試環境測試環境為windows xp,jdk版本為1.5.0。5 3 系統運行實例主控端啟動,顯示系統操作界面圖,如圖11:圖11 系統主界面5.3.1 連續獲得被監控端機器屏幕變化功能該功能在上一章詳細介紹了它的實現過程。運行實例見圖105.3.2 實現被監控端硬盤文件的上傳、下載文件上傳和下載功能能夠成功運行,運行實例見圖如下:1. 文件上傳:圖12 文件上傳對話框圖13 上傳成功消息框2. 文件下載:圖14 文件下載對話框圖15 下載成功消息框5.3.3 實現對鼠標、鍵盤的模擬該功能也正常,主控端能很好的操作對方機器,就像坐在對方機器前一樣,瀏覽對方文件,運行各種應用程序,上網等
47、。運行實例如圖16。圖16 操作對方機器5.3.4 實現在被監控端機器上執行任意dos命令該功能成功執行。結果顯示如下,這里以執行ipconfig命令和java version為例。圖17 執行ipconfig結果圖18 執行java version結果5.3.5 遠程關機、遠程重啟計算機該功能也能正常運行。這里就不給出圖例了。結 論經過幾個月的設計和開發,遠程監控系統基本開發完畢。實現了功能需求擬訂的功能,各功能能夠正常運行:能連續獲得被監控端機器的屏幕變化;能對對方機器實現文件上傳、下載;能遠程控制對方機器;能重啟,關閉對方計算機。但是由于畢業設計時間較短,所以該系統還有許多不盡如人意的地
48、方,比如界面設計不太美觀,還有就是tcp方式太消耗資源,這是需要改進的地方。遠程監控軟件的編寫采用成熟的套接字編程,實現了軟件面向設備、面向功能量身定制。在開發本系統的過程中,我同時學習了java套接字編程,java i/o流的特點和使用方法以及序列化機制,學習了基本的java圖形編程,并查看了許多資料。通過該系統的研制,使得作者對計算機有了一種新的體驗:追求實用才是學好計算機的關鍵。任何一門技術都要以能夠解決實際工作中出現的問題為依據和評判優劣的基本依據。同時讓我對軟件工程有了進一步的理解,在最開始的開發過程中,我急于完成編碼,設計不足,在編碼過程中程序邏輯攪成一團,剪不斷,理還亂。后來干脆
49、推翻,從頭開始。我得出結論,在沒想好之前,千萬不要動手寫代碼。在系統的研制過程中,我也遇到許多困難,因為以前沒有項目經驗,起步很難,不過通過各種知識的補充學習,并且查找各種資料,讓我慢慢進入狀態,并且從中找到很多樂趣。參考文獻1 herbert schidt.java 2m.北京:清華大學出版社,2004。2 耿祥義,張躍平.java 2(第二版)m.北京:清華大學出版社,2004。3 bruce eckel.java編程思想m.機械工業出版社,2005。4 張海藩.軟件工程導論m.北京:清華大學出版社,2004。5 roger s. pressmen.軟件工程實踐者的研究方法m.機械工業出版
50、社,2004。6 潘卉青,田書林,劉科.網絡故障測試儀遠程監控軟件的設計eb.http:/www.e-7 李魯群.用java robot對象實現服務器屏幕遠程監視eb.第 28 頁,共 21 頁致 謝本文是在王海春老師和刁仁宏老師的熱情關心和指導下完成的,他們淵博的知識和嚴謹的治學態度使我受益匪淺,對順利完成本課題起到了極大的作用。在此向他們表示我最衷心的感謝!在論文完成過程中,本人還得到了答辯2小組所有老師和高翔同學的熱心幫助,本人向他們表示深深的謝意!最后向在百忙之中評審本文的各位專家、老師表示衷心的感謝!作者簡介姓 名: 李丹 性別: 女出生年月: 1984年9月 民族: 漢e-mail
51、: lidan606聲 明本論文的工作是 2007 年2月至2007年6 月在成都信息工程學院 系完成的。文中除了特別加以標注地方外,不包含他人已經發表或撰寫過的研究成果,也不包含為獲得成都信息工程學院或其他教學機構的學位或證書而使用過的材料。除非另有說明,本文的工作是原始性工作。關于學位論文使用權和研究成果知識產權的說明:本人完全了解成都信息工程學院有關保管使用學位論文的規定,其中包括:(1)學校有權保管并向有關部門遞交學位論文的原件與復印件。(2)學校可以采用影印、縮印或其他復制方式保存學位論文。(3)學校可以學術交流為目的復制、贈送和交換學位論文。(4)學校可允許學位論文被查閱或借閱。(
52、5)學校可以公布學位論文的全部或部分內容(保密學位論文在解密后遵守此規定)。除非另有科研合同和其他法律文書的制約,本論文的科研成果屬于成都信息工程學院。特此聲明! 作者簽名: 年 月 日are you hungry now?no, i am tired and lazy now; if i pursue you i will not catch you, and if i catch you-through your own slowness and clumsiness-i will not kill you, and if i kill you i will not eat you.nic
53、holas had begun to back away, and at the last; words, realizing that they were a signal, he turned andbegan to run, splashing through the shallow water. ignacio ran after him, much helped by his longer legs, his hair flying behind his dark young face, his square teeth-each white as a bone and as big
54、 as nicholass thumbnail-showing like spectators who lined the railings of his lips.dont run, nicholas, dr. island said with the voice of a wave. it only makes him angry that you run. nicholas did not answer, but cut to his left, up the beach and among the trunks of the palms, sprinting all the way b
55、ecause he had no way of knowing ignacio was not right behind him, about to grab him by the neck. when he stopped it was in the thick jungle, among the boles of the hardwoods, where he leaned,.; out of breath, the thumping of his own heart the only.sound in an atmosphere silent and unwaked as earths long, prehuman day. for a time he listened for any sound ignacio might make searching for him;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高一英語學習方法指導計劃
- 施工現場吊裝安全防護措施他
- 2025年奢侈品電商運營推廣銷售工作年度計劃
- 2025屆高三語文模擬考試備考二輪復習計劃
- 幼兒園五大領域綜合活動計劃
- 2025年春期陶瓷工藝教學計劃
- 智慧弱電項目施工機械及物資進場計劃
- 2025年幼兒園春季后勤服務流程及安全計劃
- 鋼鐵生產特殊過程關鍵工序的質量控制措施
- 名著閱讀經典影視改編計劃
- 掘進專業試題庫及答案
- 2025年全省卷煙營銷知識理論多選題含答案
- 2025年江蘇專轉本英語真題及答案
- 學校困難教職工幫扶救助制度
- 相機基礎操作介紹
- 2025年信息處理技術員職業技能認定參考試題庫(含答案)
- GIS設備安裝施工方案
- 心理疏導師測試題及答案
- 貴州企業招聘2025貴州貴旅國際旅行服務有限公司招聘筆試參考題庫附帶答案詳解
- 2025年心理b證筆試試題及答案
- 玉盤二部合唱簡譜
評論
0/150
提交評論