前言:本站為你精心整理了JAVA CS遠(yuǎn)程監(jiān)控系統(tǒng)軟件范文,希望能為你的創(chuàng)作提供參考價(jià)值,我們的客服老師可以幫助你提供個(gè)性化的參考范文,歡迎咨詢。
摘要
近年來,網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,為遠(yuǎn)程監(jiān)控技術(shù)的發(fā)展創(chuàng)造了條件。遠(yuǎn)程監(jiān)控系統(tǒng)軟件越來越受到人們的重視,其實(shí)用性也毋庸質(zhì)疑。基于JAVAC/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ī)、遠(yuǎn)程重啟計(jì)算機(jī),方便了用戶監(jiān)視和操作被監(jiān)控端機(jī)器。本系統(tǒng)從系統(tǒng)需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)到具體的編碼實(shí)現(xiàn)和后期的代碼優(yōu)化、功能測(cè)試都嚴(yán)格遵循了軟件工程的思想。
關(guān)鍵詞:遠(yuǎn)程監(jiān)控;JavaRobot;屏幕截取;JavaSocket
系統(tǒng)需求分析及理論基礎(chǔ)
2.1系統(tǒng)需求分析
2.1.1系統(tǒng)功能需求
1.連續(xù)獲得被控端機(jī)器屏幕變化。
2.實(shí)現(xiàn)被控端硬盤文件的上傳、下載。
3.實(shí)現(xiàn)對(duì)鼠標(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為命令名字,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)主控端(服務(wù)器)與被監(jiān)控端(客戶端)之間的通訊。
——用JavaSocket來實(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,Eclipse3.1,WindowsXPProfessional
2.3.1Eclipse介紹
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為工具開發(fā)商提供了更好的靈活性,使他們能更好地控制自己的軟件技術(shù)。Eclipse是一個(gè)開放源代碼的項(xiàng)目,任何人都可以下載Eclipse的源代碼,并且在此基礎(chǔ)上開發(fā)自己的功能插件。同時(shí)可以通過開發(fā)新的插件擴(kuò)展現(xiàn)有插件的功能,比如在現(xiàn)有的Java開發(fā)環(huán)境中加入Tomcat服務(wù)器插件。可以無限擴(kuò)展,而且有著統(tǒng)一的外觀,操作和系統(tǒng)資源管理,這也正是Eclipse的潛力所在。.3.2Java語言
Java語言是SUN公司于1995年5月推出的新一代面向?qū)ο蟮挠?jì)算機(jī)通用編程語言,是繼WWW之后又一引起世界轟動(dòng)的產(chǎn)品。Java語言的特點(diǎn)是跨平臺(tái)和強(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)用程序。