基于JAVA CS遠(yuǎn)程監(jiān)控系統(tǒng)軟件的實(shí)現(xiàn)_第1頁
基于JAVA CS遠(yuǎn)程監(jiān)控系統(tǒng)軟件的實(shí)現(xiàn)_第2頁
基于JAVA CS遠(yuǎn)程監(jiān)控系統(tǒng)軟件的實(shí)現(xiàn)_第3頁
基于JAVA CS遠(yuǎn)程監(jiān)控系統(tǒng)軟件的實(shí)現(xiàn)_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、基于JAVA CS遠(yuǎn)程監(jiān)控系統(tǒng)軟件的實(shí)現(xiàn)    摘  要 近年來,網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,為遠(yuǎn)程監(jiān)控技術(shù)的發(fā)展創(chuàng)造了條件。遠(yuǎn)程監(jiān)控系統(tǒng)軟件越來越受到人們的重視,其實(shí)用性也毋庸質(zhì)疑?;贘AVA C/S遠(yuǎn)程監(jiān)控系統(tǒng)軟件突破了空間的限制,使用者不用親臨,在自己的電腦面前就能輕松的實(shí)現(xiàn)對(duì)被監(jiān)控端機(jī)器的監(jiān)控。本系統(tǒng)采用Java網(wǎng)絡(luò)編程和Java圖形編程實(shí)現(xiàn)。筆者在開發(fā)過程中將網(wǎng)絡(luò)技術(shù)與遠(yuǎn)程監(jiān)控理論基礎(chǔ)相結(jié)合,實(shí)現(xiàn)了以下功能:能連續(xù)獲得被監(jiān)控端機(jī)器屏幕變化;實(shí)現(xiàn)被監(jiān)控端硬盤文件的上傳、下載;實(shí)現(xiàn)對(duì)鼠標(biāo)、鍵盤的模擬;實(shí)現(xiàn)在遠(yuǎn)程機(jī)器上執(zhí)行任意DOS命令;遠(yuǎn)程關(guān)機(jī)

2、、遠(yuǎn)程重啟計(jì)算機(jī),方便了用戶監(jiān)視和操作被監(jiān)控端機(jī)器。本系統(tǒng)從系統(tǒng)需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)到具體的編碼實(shí)現(xiàn)和后期的代碼優(yōu)化、功能測試都嚴(yán)格遵循了軟件工程的思想。  關(guān)鍵詞:遠(yuǎn)程監(jiān)控;Java Robot;屏幕截??;Java Socket    引  言 近年來,隨著計(jì)算機(jī)及網(wǎng)絡(luò)的應(yīng)用普及,千千萬萬的人們?cè)趭蕵?、通訊、學(xué)習(xí)、工作等各方面都實(shí)現(xiàn)了前所未有的信息化,極大地提高了生活質(zhì)量與工作效率。然而在這種種便利背后,你關(guān)注的人在做什么呢?比如:公司員工。因此,遠(yuǎn)程監(jiān)控發(fā)揮作用了。這里以公司領(lǐng)導(dǎo)為例,遠(yuǎn)程監(jiān)控系統(tǒng)軟件方便了公司領(lǐng)導(dǎo)人管理公

3、司員工。在一個(gè)企業(yè)中,作為公司領(lǐng)導(dǎo)人,一定很擔(dān)心自己的員工利用上班時(shí)間做工作以外的其他事情,也很擔(dān)心他們泄露公司機(jī)密,等等。有了遠(yuǎn)程監(jiān)控,這樣的擔(dān)心就很容易解決,你不用親臨監(jiān)督每個(gè)員工,在自己電腦面前就能對(duì)他們的一舉一動(dòng)了如指掌。 遠(yuǎn)程監(jiān)控技術(shù),始于DOS時(shí)代,因?yàn)楫?dāng)時(shí)網(wǎng)絡(luò)不發(fā)達(dá),這門技術(shù)沒有得到很多重視,但是隨著網(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ù)器,主控端作為客戶端

4、??紤]到在監(jiān)控過程中,如果把主控端作為客戶端向被監(jiān)控端發(fā)送TCP連接請(qǐng)求,容易被防火墻或者殺毒軟件阻止,監(jiān)控過程就不能夠成功進(jìn)行。因此,本畢業(yè)設(shè)計(jì)將被監(jiān)控端設(shè)計(jì)為客戶端,向主控端發(fā)連接請(qǐng)求,建立連接后,主控端向被監(jiān)控端發(fā)送遠(yuǎn)程控制命令,控制被監(jiān)控端電腦中的各種應(yīng)用程序運(yùn)行,被監(jiān)控端對(duì)主控端發(fā)送來的命令進(jìn)行處理,并將命令處理結(jié)果返回給主控端。 遠(yuǎn)程監(jiān)控軟件順應(yīng)時(shí)代發(fā)展的需求,它實(shí)用、使用簡便,是非常不錯(cuò)的軟件。   1.1 遠(yuǎn)程監(jiān)控的背景知識(shí) 遠(yuǎn)程監(jiān)控是在網(wǎng)絡(luò)上由一臺(tái)電腦(主控端Remote)遠(yuǎn)距離去監(jiān)控另一臺(tái)電腦(被監(jiān)控端Host)的技術(shù),這里的遠(yuǎn)程不是字面意思的遠(yuǎn)距離,一般指通過網(wǎng)

5、絡(luò)監(jiān)控遠(yuǎn)端電腦,不過,大多數(shù)時(shí)候我們所說的遠(yuǎn)程監(jiān)控往往指在局域網(wǎng)中的遠(yuǎn)程監(jiān)控而言。 當(dāng)操作者使用主控端電腦監(jiān)控被監(jiān)控端電腦時(shí),就如同坐在被監(jiān)控端電腦的屏幕前一樣,可以啟動(dòng)被監(jiān)控端電腦的應(yīng)用程序,可以使用被監(jiān)控端電腦的文件資料,不過,有一個(gè)概念需要明確,那就是主控端電腦只是將鍵盤和鼠標(biāo)的指令傳送給遠(yuǎn)程電腦,同時(shí)將被監(jiān)控端電腦的屏幕畫面通過通信線路回傳過來。也就是說,我們控制被監(jiān)控端電腦進(jìn)行操作似乎是在眼前的電腦上進(jìn)行的,實(shí)質(zhì)是在遠(yuǎn)程的電腦中實(shí)現(xiàn)的,不論打開文件,還是上網(wǎng)瀏覽、下載等都是存儲(chǔ)在遠(yuǎn)程的被監(jiān)控端電腦中的。 電腦中的遠(yuǎn)程控制技術(shù),始于DOS時(shí)代,只不過當(dāng)時(shí)由于技術(shù)上沒有什么大的變化,網(wǎng)絡(luò)

6、不發(fā)達(dá),市場沒有更高的要求,所以遠(yuǎn)程控制技術(shù)沒有引起更多人的注意。但是,隨著網(wǎng)絡(luò)的高度發(fā)展,電腦的管理及技術(shù)支持的需要,遠(yuǎn)程操作及控制技術(shù)越來越引起人們的關(guān)注。 遠(yuǎn)程控制一般支持下面的這些網(wǎng)絡(luò)方式:LAN、WAN、撥號(hào)方式、互聯(lián)網(wǎng)方式。此外,有的遠(yuǎn)程控制軟件還支持通過串口、并口、紅外端口來對(duì)遠(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)程控

7、制,例如數(shù)技通科技有限公司在就推出了全球第一套基于中文JAVA的跨平臺(tái)遠(yuǎn)程控制軟件易控。   1 2 遠(yuǎn)程監(jiān)控軟件的原理 遠(yuǎn)程監(jiān)控軟件一般分兩個(gè)部分:一部分是客戶端程序Client,另一部分是服務(wù)器端程序Server,由于本畢業(yè)設(shè)計(jì)的通信模塊有別于傳統(tǒng)的遠(yuǎn)程監(jiān)控軟件,在使用前需要將客戶端程序安裝到被監(jiān)控端電腦上,將服務(wù)器端程序安裝到主控端電腦上。 它的控制的過程是先在被監(jiān)控端電腦上執(zhí)行客戶端程序,像一個(gè)普通的客戶一樣向主控端電腦中的服務(wù)器端程序發(fā)出信號(hào),建立一個(gè)特殊的遠(yuǎn)程服務(wù),然后通過這個(gè)遠(yuǎn)程服務(wù),接收主控端發(fā)送過來的遠(yuǎn)程控制命令,并對(duì)命令進(jìn)行處理,最后將命令處理結(jié)果返回給主控端,我

8、們稱這種遠(yuǎn)程控制方式為基于遠(yuǎn)程服務(wù)的遠(yuǎn)程控制。通過遠(yuǎn)程監(jiān)控軟件,我們可以進(jìn)行很多方面的遠(yuǎn)程控制,包括獲取目標(biāo)電腦屏幕圖像、窗口及進(jìn)程列表;記錄并提取遠(yuǎn)端鍵盤事件(擊鍵序列,即監(jiān)視遠(yuǎn)端鍵盤輸入的內(nèi)容);可以打開、關(guān)閉目標(biāo)電腦的任意目錄并實(shí)現(xiàn)資源共享;提取撥號(hào)網(wǎng)絡(luò)及普通程序的密碼;激活、中止遠(yuǎn)端程序進(jìn)程;管理遠(yuǎn)端電腦的文件和文件夾;關(guān)閉或者重新啟動(dòng)遠(yuǎn)端電腦中的操作系統(tǒng);修改Windows注冊(cè)表;通過遠(yuǎn)端電腦上、下載文件和捕獲音頻、視頻信號(hào)等。 前面我們所說的是一臺(tái)電腦對(duì)一臺(tái)電腦的情況,其實(shí),基于遠(yuǎn)程服務(wù)的遠(yuǎn)程控制最適合的模式是一對(duì)多,即利用遠(yuǎn)程監(jiān)控軟件,我們可以使用一臺(tái)電腦監(jiān)控多臺(tái)電腦,這就使得我

9、們不必為辦公室的每一臺(tái)電腦都安裝一個(gè)調(diào)制解調(diào)器,而只需要利用辦公室局域網(wǎng)的優(yōu)勢就可以輕松實(shí)現(xiàn)遠(yuǎn)程多點(diǎn)控制了。 在進(jìn)行一臺(tái)電腦對(duì)多臺(tái)遠(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)的延伸。這種一對(duì)多的連接方式在節(jié)省了調(diào)制解調(diào)器的同時(shí),還使得網(wǎng)絡(luò)的接入更加安全可靠,網(wǎng)絡(luò)管理員也更易于管理局域網(wǎng)上的每一臺(tái)電腦。 本文所論述的遠(yuǎn)程監(jiān)控系統(tǒng)就是依照這種方式進(jìn)行的。   2 系統(tǒng)需求分析及理論基礎(chǔ) 2.1 系統(tǒng)需求分析 2.1.1 系統(tǒng)功能需求 1連續(xù)獲得被控端機(jī)器屏幕變化。 2實(shí)現(xiàn)被控端硬盤文件的上傳、下載。 3實(shí)現(xiàn)對(duì)鼠

10、標(biāo)、鍵盤的模擬。 4實(shí)現(xiàn)在被控端機(jī)器上執(zhí)行任意DOS命令。 5遠(yuǎn)程關(guān)機(jī)、遠(yuǎn)程重啟計(jì)算機(jī)。 2.1.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.2 系統(tǒng)開發(fā)原理及關(guān)鍵技術(shù) 2.2.1 系統(tǒng)開發(fā)原理 本系統(tǒng)是利用類java.awt.robot中的屏幕截取和鼠標(biāo)、鍵盤自動(dòng)控制功能,然后加上網(wǎng)絡(luò)傳輸功能來完成來完成截屏和遠(yuǎn)程控制的。 2.2.2 系統(tǒng)運(yùn)行概述 1啟動(dòng)被監(jiān)控端,打開指定的UDP端口號(hào)。用于讀取命令。 2被監(jiān)控端讀取命令(命令格式為ordername:port)ordername為命令名字

11、,port為主控端打開的TCP端口。 3接到主控端連接后,被監(jiān)控端就對(duì)當(dāng)前用戶的桌面采用屏幕截取,然后發(fā)送給主控端。依被監(jiān)控端設(shè)計(jì)的不同,可以設(shè)定屏幕截取的時(shí)間間隔,時(shí)間間隔短一點(diǎn)就可以獲得連續(xù)屏幕變化了。 4主控端在畫布上對(duì)鼠標(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í)行。 2.2.3 系統(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)主控

12、端(服務(wù)器)與被監(jiān)控端(客戶端)之間的通訊。 用Java Socket來實(shí)現(xiàn)。 2用Java采集事件,封裝成消息,用于發(fā)送。 在主控端機(jī)器上采集事件(一般只不過是鍵盤和鼠標(biāo)的事件),然后封裝成消息類傳輸?shù)奖槐O(jiān)控端。 3在被監(jiān)控端上重演主控端的動(dòng)作事件。 在被監(jiān)控端運(yùn)行client端,接收消息,如果主控端有請(qǐng)求操作的消息,用Robot截下當(dāng)前屏幕,傳給主控端,主控端顯示被監(jiān)控端的屏幕,是一個(gè)位圖;然后接收在這個(gè)位圖上的鼠標(biāo)事件和鍵盤事件,并把鼠標(biāo)位置(位圖上的坐標(biāo)換算成對(duì)應(yīng)的屏幕上的坐標(biāo))和鍵值送到被監(jiān)控端上,在被監(jiān)控端上重演同樣的事件。   2.3 系統(tǒng)的開發(fā)平臺(tái) JDK1.5.0,

13、Eclipse3.1,Windows XP Professional 2.3.1 Eclipse介紹 Eclipse是一種可擴(kuò)展的開放源代碼IDE。2001年11月,IBM公司捐出價(jià)值4,000萬美元的源代碼組建了Eclipse聯(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)建了Eclipse平臺(tái)。Eclipse允許在同一IDE中集成來自不同供應(yīng)商的工具,并實(shí)現(xiàn)了工具之間的互操作性,從而顯著改變了項(xiàng)目工作流程,使開發(fā)者可以專注在實(shí)際的嵌入式目標(biāo)上。Eclipse為

14、工具開發(fā)商提供了更好的靈活性,使他們能更好地控制自己的軟件技術(shù)。Eclipse是一個(gè)開放源代碼的項(xiàng)目,任何人都可以下載Eclipse的源代碼,并且在此基礎(chǔ)上開發(fā)自己的功能插件。同時(shí)可以通過開發(fā)新的插件擴(kuò)展現(xiàn)有插件的功能,比如在現(xiàn)有的Java開發(fā)環(huán)境中加入Tomcat服務(wù)器插件??梢詿o限擴(kuò)展,而且有著統(tǒng)一的外觀,操作和系統(tǒng)資源管理,這也正是Eclipse的潛力所在。 2.3.2 Java語言 Java語言是SUN公司于1995年5月推出的新一代面向?qū)ο蟮挠?jì)算機(jī)通用編程語言,是繼WWW之后又一引起世界轟動(dòng)的產(chǎn)品。Java語言的特點(diǎn)是跨平臺(tái)和強(qiáng)大的網(wǎng)絡(luò)編程功能。在Java語言誕生之前,Interne

15、t已存在,所以Java語言本身就封裝了大量進(jìn)行網(wǎng)絡(luò)編程的類庫,使得網(wǎng)絡(luò)編程功能強(qiáng)大,同時(shí)又簡化了網(wǎng)絡(luò)編程的操作。因此利用Java語言可以開發(fā)出功能強(qiáng)大的網(wǎng)絡(luò)應(yīng)用程序。 2.3.3 Jar命令 功能:Java歸檔工具 語法:jar 命令選項(xiàng) manifest destination input-file input-files jar工具是個(gè)java應(yīng)用程序,可將多個(gè)文件合并為單個(gè)JAR歸檔文件。jar是個(gè)多用途的存檔及壓縮工具,它基于ZIP和ZLIB壓縮格式。然而,設(shè)計(jì)jar的主要目的是便于將java applet或應(yīng)用程序打包成單個(gè)歸檔文件。將applet或應(yīng)用程序的組件(.class文件、

16、圖像和聲音)合并成單個(gè)歸檔文件時(shí),可以用java代理(如瀏覽器)在一次HTTP事務(wù)處理過程中對(duì)它們進(jìn)行下載,而不是對(duì)每個(gè)組件都要求一個(gè)新連接。這大大縮短了下載時(shí)間。jar還能壓縮文件,從而進(jìn)一步提高了下載速度。此外,它允許applet的作者對(duì)文件中的各個(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)容表。 -xfile:從標(biāo)準(zhǔn)輸入提取所有文件,或只提取指定的文件。如果省略了file,則提取所有文件;否則只提取指定文件。 -f:第二個(gè)參數(shù)指定要處理的jar文件。在-c(創(chuàng)建)情形中,第二個(gè)

17、參數(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:只儲(chǔ)存,不進(jìn)行 ZIP 壓縮。 -M:不創(chuàng)建項(xiàng)目的清單文件。 -u:通過添加文件或更改清單來更新現(xiàn)有的 JAR 文件。例如:“jar -uf foo.jar foo.class”將文件 foo.class 添加到現(xiàn)有的JAR文件foo.jar中,而“jar umf m

18、anifest 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.jar *.class 2:顯示一個(gè)JAR文件中的文件列表: jar tf file.jar 3:將當(dāng)前目錄下的所有文件增加到一個(gè)已經(jīng)存在的JAR文件中: jar cvf file.jar *   2.4 編程運(yùn)行環(huán)境 硬件環(huán)境: CPU:  閃龍2400 內(nèi)存:256M 硬盤:80G 軟件環(huán)境: 操作系統(tǒng):Windows XP Professional 應(yīng)用軟件:Eclipse3.1 + JDK1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論