




免費預(yù)覽已結(jié)束,剩余49頁可下載查看
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
局域網(wǎng)中遠(yuǎn)程桌面監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn) 摘 要 I 局域網(wǎng)遠(yuǎn)程桌面監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn) 摘 要 遠(yuǎn)程桌面監(jiān)控系統(tǒng)可以讓本地計算機通過局域網(wǎng)訪問不同的遠(yuǎn)程計算 機 并對其進行操作 維護人員可以通過本系統(tǒng)實時地監(jiān)控聯(lián)網(wǎng)計算機的 運行情況 根據(jù)需要隨時改變聯(lián)網(wǎng)計算機系統(tǒng)設(shè)置 對出現(xiàn)故障的計算機 能夠通過網(wǎng)絡(luò)及時修復(fù) 管理人員通過本系統(tǒng)可以規(guī)范員工對計算機的使 用 及時發(fā)現(xiàn)并解決工作中存在的問題 本系統(tǒng)可以在不同平臺上運行 實現(xiàn)運行不同桌面操作系統(tǒng)的計算機 之間的相互監(jiān)控 該系統(tǒng)對遠(yuǎn)程主機的監(jiān)控主要包括 實時監(jiān)視桌面狀態(tài) 修改系統(tǒng)配置文件 控制鼠標(biāo) 鍵盤的基本操作 本系統(tǒng)采用 Java 語言實 現(xiàn) 開發(fā)工具采用 NetBeansIDE6 7 開發(fā) 本文介紹了局域網(wǎng)中遠(yuǎn)程桌面監(jiān)控系統(tǒng)的分析 設(shè)計和開發(fā)的全部過 程 運用功能結(jié)構(gòu)圖 程序流程圖等對遠(yuǎn)程桌面監(jiān)控子系統(tǒng)的設(shè)計過程進 行詳細(xì)的說明 首先簡單介紹了遠(yuǎn)程桌面監(jiān)控系統(tǒng)的應(yīng)用前景以及面臨問 題 介紹了系統(tǒng)的總體目標(biāo)以及用戶需求 設(shè)計了系統(tǒng)的基本框架和各個 模塊的功能 然后主要介紹了各個功能模塊的具體實現(xiàn)步驟 并對模塊中 用到的類 構(gòu)造函數(shù)和主要方法做了簡單的說明 最后給出了測試方法和 結(jié)果 對系統(tǒng)的優(yōu)缺點進行了總結(jié) 關(guān)鍵詞關(guān)鍵詞 遠(yuǎn)程桌面監(jiān)控遠(yuǎn)程桌面監(jiān)控 Java Socket JPEG RMI Design and Implementation of RDMS Abstract I Design and Implementation of Remote Desktop Monitoring System in LAN Abstract RDMS enables the local computer to control a different remote computer through the LAN In the system the administrator can monitor the operation of a remote computer change the remote computer s system settings repair faults in remote host The administrator can regulate the use of staff on the computer to discover and resolve problems This system can run on different platforms to achieve monitoring between computers running different operating systems The system for remote monitoring and control console includes real time monitoring desktop status modify the system configuration files control the mouse keyboard basic operations The system is developed in Java language implementation development tools are NetBeansIDE6 7 This paper describes analysis design and development process of RDMS Functional structure diagram program flow chart are used in system design process First RDMS application prospects as well as the problems faced is introduced the overall system objectives and user requirements are described Design of the system basic framework and functions of each module are discussed the various functional blocks of concrete implementation steps modules used in class constructor and main method of doing a simple description are given Finally test methods and results advantages and disadvantages of the system are summarized Keywords Remote Desktop Monitoring Java Socket JPEG RMI 局域網(wǎng)中遠(yuǎn)程桌面監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn) 目 錄 I 目 錄 第第 1 1 章章引引 言言 1 第第 2 2 章章需求分析需求分析 3 2 1系統(tǒng)設(shè)計背景與總體目標(biāo)系統(tǒng)設(shè)計背景與總體目標(biāo) 3 2 1 1系統(tǒng)設(shè)計的背景 3 2 1 2系統(tǒng)設(shè)計的總體目標(biāo) 3 2 2用戶需求用戶需求 3 2 2 1功能需求 3 2 2 2性能需求 4 第第 3 3 章章可采用的技術(shù)方案與可行性分析可采用的技術(shù)方案與可行性分析 5 3 1可采用的技術(shù)方案可采用的技術(shù)方案 5 3 1 1套接字 Socket 5 3 1 2JPEG 壓縮技術(shù) 6 3 1 3Java 的 RMI 技術(shù) 7 3 2可行性分析可行性分析 9 3 2 1技術(shù)可行性 9 3 2 2經(jīng)濟可行性 9 3 3編程語言與開發(fā)工具編程語言與開發(fā)工具 10 3 3 1Java 編程語言 10 3 3 2NetBeans 開發(fā)工具 10 第第 4 4 章章系統(tǒng)分析與設(shè)計系統(tǒng)分析與設(shè)計 12 4 1系統(tǒng)基本框架系統(tǒng)基本框架 12 4 2系統(tǒng)總體設(shè)計與功能結(jié)構(gòu)系統(tǒng)總體設(shè)計與功能結(jié)構(gòu) 13 4 3主控端系統(tǒng)設(shè)計與功能結(jié)構(gòu)主控端系統(tǒng)設(shè)計與功能結(jié)構(gòu) 13 4 3 1配置管理模塊 14 4 3 2顯示遠(yuǎn)程桌面模塊 15 4 3 3遠(yuǎn)程控制模塊 16 4 4被控端設(shè)計功能結(jié)構(gòu)被控端設(shè)計功能結(jié)構(gòu) 17 4 4 1配置管理模塊 17 局域網(wǎng)中遠(yuǎn)程桌面監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn) 目 錄 II 4 4 2發(fā)送桌面信息模塊 18 4 4 3響應(yīng)控制模塊 19 第第 5 5 章章系統(tǒng)實現(xiàn)系統(tǒng)實現(xiàn) 20 5 1系統(tǒng)實現(xiàn)思路系統(tǒng)實現(xiàn)思路 20 5 2主控端程序 主控端程序 Client Program 22 5 2 1配置管理模塊中的基本操作功能 22 5 2 2配置管理模塊中的掃描可連主機功能 27 5 2 3顯示遠(yuǎn)程桌面模塊中的桌面顯示功能 30 5 2 4顯示遠(yuǎn)程桌面模塊中的附屬功能 34 5 2 5遠(yuǎn)程控制模塊 34 5 3被控端程序 被控端程序 ServiceProgram 35 5 3 1配置管理模塊中的安全管理功能 35 5 3 2配置管理模塊中的系統(tǒng)基本設(shè)置功能 37 5 3 3發(fā)送桌面信息模塊 39 5 3 4響應(yīng)控制模塊 42 第第 6 6 章章測測 試試 45 6 1主控端測試主控端測試 45 6 1 1對基本操作功能的測試 45 6 1 2對掃描可連主機功能的測試 45 6 1 3對遠(yuǎn)程控制功能的測試 45 6 2被控端測試被控端測試 45 6 2 1對連接密碼的驗證測試 45 6 2 2創(chuàng)建存儲密碼文件的測試 46 6 3測試結(jié)果測試結(jié)果 46 第第 7 7 章章結(jié)結(jié) 論論 47 致致 謝謝 48 參考文獻參考文獻 49 局域網(wǎng)中遠(yuǎn)程桌面監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn) 第 1 章 1 第 1 章 引 言 網(wǎng)絡(luò)的誕生拓展了計算機的應(yīng)用范圍 網(wǎng)絡(luò)的迅速發(fā)展在提高生產(chǎn)效 率的同時也改變了人們的工作方式 現(xiàn)在有很多公司 企事業(yè)單位都建立 了自己的內(nèi)部網(wǎng)絡(luò) 對于維護人員來說 希望能夠通過網(wǎng)絡(luò)實時的監(jiān)控聯(lián) 網(wǎng)計算機的運行情況 希望根據(jù)需要通過網(wǎng)絡(luò)隨時改變聯(lián)網(wǎng)計算機的設(shè)置 希望對出現(xiàn)故障的計算機能夠通過網(wǎng)絡(luò)及時排除故障 對于管理人員來說 希望通過網(wǎng)絡(luò)隨時了解員工的工作進展情況和規(guī)范員工對計算機的使用以 及解決工作中存在的問題 為此 希望編寫一個適合于局域網(wǎng)的桌面監(jiān)控 程序以滿足上述需求 本系統(tǒng)就在這樣的需求環(huán)境下孕育而生了 遠(yuǎn)程控制技術(shù)是指用本地計算機通過網(wǎng)絡(luò)去控制一臺或多臺遠(yuǎn)程主機 的技術(shù) 當(dāng)用戶使用本地計算機控制遠(yuǎn)程主機時 就如同坐在遠(yuǎn)程主機的 屏幕前一樣 可以啟動遠(yuǎn)程主機的應(yīng)用程序 可以使用遠(yuǎn)程主機的文件資 料 甚至可以利用遠(yuǎn)程主機的外部打印設(shè)備和通信設(shè)備來進行打印和訪問 互聯(lián)網(wǎng) 不過 在遠(yuǎn)程主機中所運行的程序 所打開的文件 所下載的文 檔都是存儲在遠(yuǎn)程主機中的 盡管這些操作似乎是在眼前的電腦上進行的 但事實上主控端電腦只是將鍵盤和鼠標(biāo)的指令傳送給遠(yuǎn)程主機 同時將被 控端電腦的屏幕畫面通過通信線路傳過來 從而達到控制與被控制的目的 遠(yuǎn)程控制系統(tǒng)一般分為客戶端程序 Client 和服務(wù)端程序 Server 兩大部 分 在使用前需要將客戶端程序安裝到本地計算機上 將服務(wù)端程序安裝 到遠(yuǎn)程主機上 它的控制的過程是在本地計算機上執(zhí)行客戶端程序 向遠(yuǎn) 程主機中的服務(wù)端程序發(fā)出信號 建立一個特殊的遠(yuǎn)程服務(wù) 然后通過這 個遠(yuǎn)程服務(wù) 使用各種遠(yuǎn)程控制功能發(fā)送遠(yuǎn)程控制命令 控制遠(yuǎn)程主機中 的各種應(yīng)用程序運行 通過遠(yuǎn)程控制系統(tǒng) 可以進行很多方面的遠(yuǎn)程控制 包括獲取遠(yuǎn)程主機屏幕圖像 打開 關(guān)閉遠(yuǎn)程主機的任意目錄 管理遠(yuǎn)程 主機的文件和文件夾 關(guān)閉或者重新啟動遠(yuǎn)程主機中的操作系統(tǒng) 通過遠(yuǎn) 程主機上 下載文件和捕獲音頻 視頻信號等 遠(yuǎn)程控制系統(tǒng)也適合一對多模式 可以使用本地計算機控制多個遠(yuǎn)程 局域網(wǎng)中遠(yuǎn)程桌面監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn) 第 1 章 2 主機 管理者可以在本地計算機上同時查看多個員工的工作進展情況 及 早發(fā)現(xiàn)工作中的差錯以便及時改正 特別是對于網(wǎng)絡(luò)管理員 技術(shù)服務(wù)人 員來說 遠(yuǎn)程控制提供了一個便捷 高效的手段 但是所有這些與網(wǎng)絡(luò)環(huán)境有很大的關(guān)系 網(wǎng)速過慢是很多網(wǎng)絡(luò)程序的 瓶頸 遠(yuǎn)程控制也不例外 獲取被控端電腦屏幕的過程 實際上就是服務(wù) 器端傳輸一副屏幕圖片到客服端的過程 這個過程需要傳輸大量的數(shù)據(jù) 如何對屏幕圖片數(shù)據(jù)進行壓縮 多長時間發(fā)送一次屏幕圖片數(shù)據(jù) 是不是 每次都需要發(fā)送整個屏幕的數(shù)據(jù) 這些都是遠(yuǎn)程控制必須面對的問題 與此同時 網(wǎng)絡(luò)安全 信息安全也成為人們不得不考慮的熱點問題 遠(yuǎn)程控制系統(tǒng)存在著比較嚴(yán)重的安全隱患 容易受到黑客的攻擊和非法入 侵 這就需要對軟件在設(shè)計方面做出安全考慮 局域網(wǎng)中遠(yuǎn)程桌面監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn) 第 2 章 3 第 2 章 需求分析 2 1 系統(tǒng)設(shè)計背景與總體目標(biāo) 2 1 1 系統(tǒng)設(shè)計的背景 隨著計算機應(yīng)用領(lǐng)域的不斷拓寬 網(wǎng)絡(luò)技術(shù)的日臻成熟 很多公司企 業(yè)都建立了自己的局域網(wǎng) 單個主機的資源已經(jīng)不能滿足用戶的需求 通 過網(wǎng)絡(luò)操作其它主機并使用其資源已成為局域網(wǎng)中必備的功能 遠(yuǎn)程桌面 系統(tǒng)就是在這樣的背景下孕育而生 2 1 2 系統(tǒng)設(shè)計的總體目標(biāo) 能夠隨時對局域網(wǎng)中的主機進行遠(yuǎn)程監(jiān)控 實時性高 通信量小 界 面友好 操作簡單 功能齊全并有一定安全措施 2 2 用戶需求 2 2 1 功能需求 1 主控端 對遠(yuǎn)程主機的桌面進行實時監(jiān)視 1 修改被控制端的系統(tǒng)配置文件 2 可以對遠(yuǎn)程主機進行關(guān)機和重新啟動的操作 3 可在本地直接操作遠(yuǎn)程主機 4 實現(xiàn)鼠標(biāo)的基本操作 包括 單擊 雙擊 拖拽 滾輪等 5 實現(xiàn)鍵盤的基本操作 包括 基本鍵 控制鍵 功能鍵等 6 局域網(wǎng)中遠(yuǎn)程桌面監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn) 第 2 章 4 對局域網(wǎng)中的遠(yuǎn)程主機進行掃描 尋找可控主機 7 對系統(tǒng)的運行狀態(tài)提供簡單的提示信息 8 2 被控端 開機自動運行服務(wù)端程序 1 退出和設(shè)置系統(tǒng)需要身份驗證 2 程序運行時 可以最小化到系統(tǒng)托盤 3 遠(yuǎn)程連接需要身份驗證 4 可以改變系統(tǒng)基本設(shè)置 5 對于程序的操作和系統(tǒng)的運行狀態(tài)提供簡單的提示信息 6 2 2 2 性能需求 1 實時性 主控端實時監(jiān)視遠(yuǎn)程主機的桌面 被控端及時響應(yīng)主控端 的控制請求 2 安全性 被控端只能被一臺主機控制 連接時需要身份驗證 退出 程序時需提供密碼 3 網(wǎng)絡(luò)通信量 盡量減少網(wǎng)絡(luò)上傳送的數(shù)據(jù)量 節(jié)省網(wǎng)絡(luò)資源 4 與平臺無關(guān)性 適用于運行不同桌面操作系統(tǒng)的計算機 5 界面友好 操作簡單 局域網(wǎng)中遠(yuǎn)程桌面監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn) 第 3 章 5 第 3 章可采用的技術(shù)方案與可行性分 析 3 1 可采用的技術(shù)方案 基于以上需求分析 本系統(tǒng)的實現(xiàn)主要采用了套接字 Socket 技術(shù) JPEG 圖像編碼技術(shù) Java 的 RMI 遠(yuǎn)程對象調(diào)用技術(shù) 3 1 1 套接字 Socket Socket 的英文原義是 插槽 插座 在網(wǎng)絡(luò)通信中通常也稱作 套 接字 用于描述 IP 地址和端口 是一個通信鏈的句柄 應(yīng)用程序通常通 過 套接字 向網(wǎng)絡(luò)發(fā)出請求或者應(yīng)答網(wǎng)絡(luò)請求 Socket 利用網(wǎng)間網(wǎng)通信 設(shè)施實現(xiàn)進程通信 但它對通信設(shè)施的細(xì)節(jié)毫不關(guān)心 只要通信設(shè)施能提 供足夠的通信能力 就可以了 Socket 提供了進程通信的端點 進程通信 之前 雙方首先必須各自創(chuàng)建一個端點 否則沒有辦法建立聯(lián)系并相互通 信 最重要的是 Socket 是面向客戶 服務(wù)器模型而設(shè)計的 針對客戶和 服務(wù)器程序提供不同的 Socket 系統(tǒng)調(diào)用 客戶隨機申請一個 Socket 系 統(tǒng)為之分配一個 Socket 號 服務(wù)器擁有全局公認(rèn)的 Socket 任何客戶都 可以向它發(fā)出連接請求和信息請求 Socket 利用客戶 服務(wù)器模式巧妙地解決了進程之間建立通信連接的問 題 服務(wù)器 Socket 為全局所公認(rèn)非常重要 假如通信雙方?jīng)]有任何一方的 Socket 固定 就好比打電話的雙方彼此不知道對方的電話號碼 要通話是 不可能的 套接字成對出現(xiàn) 其中一個運行于客戶機端 稱之為 ClientSocket 另一個運行于服務(wù)器端 稱之為 ServerSocket 根據(jù)連接啟動的方式以及 局域網(wǎng)中遠(yuǎn)程桌面監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn) 第 3 章 6 本地套接字要連接的目標(biāo) 套接字之間的連接過程可以分為三個步驟 服 務(wù)器監(jiān)聽 客戶端請求 連接確認(rèn) 所謂服務(wù)器監(jiān)聽 是服務(wù)器端套接字 并不定位具體的客戶端套接字 而是處于等待連接的狀態(tài) 實時監(jiān)控網(wǎng)絡(luò) 狀態(tài) 所謂客戶端請求 是指由客戶端的套接字提出連接請求 要連接的 目標(biāo)是服務(wù)器端的套接字 為此 客戶端的套接字必須首先描述它要連接 的服務(wù)器的套接字 指出服務(wù)器端套接字的地址和端口號 然后就向服務(wù) 器端套接字提出連接請求 所謂連接確認(rèn) 是指當(dāng)服務(wù)器端套接字監(jiān)聽到 或者說接收到客戶端套接字的連接請求 它就響應(yīng)客戶端套接字的請求 建立一個新的線程 把服務(wù)器端套接字的描述發(fā)給客戶端 一旦客戶端確 認(rèn)了此描述 連接就建立好了 常用的 Socket 類型有兩種 流式 Socket SOCK STREAM 和數(shù)據(jù) 報式 Socket SOCK DGRAM 流式是一種面向連接的 Socket 針對于面 向連接的 TCP 服務(wù)應(yīng)用 數(shù)據(jù)報式 Socket 是一種無連接的 Socket 對應(yīng) 于無連接的 UDP 服務(wù)應(yīng)用 本程序采用 TCP 協(xié)議 因為流控和差控的存在使得傳輸更具有穩(wěn)定性 UDP 雖然效率更高 但是有掉包的情況出現(xiàn) 這是本方案所不允許的 3 1 2 JPEG 壓縮技術(shù) 要想對遠(yuǎn)程主機進行監(jiān)控 就需要截取遠(yuǎn)程主機的屏幕圖像 并將圖 像發(fā)送到本地計算機 本地計算機接收該圖像并顯示到程序界面中 截取 的屏幕圖像根據(jù)屏幕分辨率的不同 圖像數(shù)據(jù)的大小也不同 最常用的 1024 768 分辨率的屏幕截取圖像大約 4MB 5MB 這么大的圖片在網(wǎng)絡(luò) 中傳送非常慢 滿足不了用戶的需求 必須控制圖片的大小 使它更有利 于網(wǎng)絡(luò)傳送 控制圖片大小的方法主要有三種 1 降低圖片的顏色值 2 縮小圖像的尺寸 3 使用壓縮的圖片格式 根據(jù)用戶需求 本系統(tǒng)采用第 3 種方法 將捕捉的屏幕圖像編碼為支持壓縮格式的 JPEG 類型的圖片 然后在網(wǎng)絡(luò)中傳送 一張 1024 768 分辨率的屏幕截圖 編碼為 JPEG 格 式大約 150KB 它在局域網(wǎng)中的傳送速度可以滿足用戶需求 JPEG 是 Joint Photographic Experts Group 聯(lián)合圖像專家組 的縮寫 文 局域網(wǎng)中遠(yuǎn)程桌面監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn) 第 3 章 7 件后輟名為 jpg 或 jpeg 是目前網(wǎng)絡(luò)上最流行的圖像格式 由一個 軟件開發(fā)聯(lián)合會組織制定 是一種有損壓縮格式 能夠?qū)D像壓縮在很小 的儲存空間 JPEG 壓縮技術(shù)十分先進 它用有損壓縮方式去除冗余的圖 像數(shù)據(jù) 在獲得極高的壓縮率的同時能展現(xiàn)十分豐富生動的圖像 而且 JPEG 是一種很靈活的格式 具有調(diào)節(jié)圖像質(zhì)量的功能 允許用不同的壓 縮比例對文件進行壓縮 支持多種壓縮級別 壓縮比率通常在 10 1 到 40 1 之間 壓縮比越大 品質(zhì)就越低 相反地 壓縮比越小 品質(zhì)就越好 當(dāng)然也可以在圖像質(zhì)量和文件尺寸之間找到平衡點 JPEG 格式壓縮的主 要是高頻信息 對色彩的信息保留較好 適合應(yīng)用于互聯(lián)網(wǎng) 可減少圖像 的傳輸時間 可以支持 24bit 真彩色 也普遍應(yīng)用于需要連續(xù)色調(diào)的圖像 JPEG 格式的應(yīng)用非常廣泛 目前各類瀏覽器均支持 JPEG 這種圖像格 式 因為 JPEG 格式的文件尺寸較小 下載速度快 JPEG 格式又可分為標(biāo)準(zhǔn) JPEG 漸進式 JPEG 及 JPEG2000 三種格式 1 標(biāo)準(zhǔn) JPEG 格式 此類型圖像在網(wǎng)頁下載時只能由上而下依序 顯示圖片 直到圖片資料全部下載完畢 才能看到全貌 2 漸進式 JPEG 格式 漸進式 JPG 為標(biāo)準(zhǔn) JPG 的改良格式 可以 在網(wǎng)頁下載時 先呈現(xiàn)出圖片的粗略外觀后 再慢慢地呈現(xiàn)出完整的內(nèi)容 就像 GIF 格式的交錯顯示 而且存成漸進式 JPG 格式的檔案比存成標(biāo)準(zhǔn) JPG 格式的檔案要來得小 所以如果要在網(wǎng)頁上使用圖片 可以多用這種 格式 3 JPEG2000 格式 新一代的影像壓縮法 壓縮品質(zhì)更好 并可改 善無線傳輸時因訊號不穩(wěn)造成馬賽克及位置錯亂的情況 改善傳輸?shù)钠焚|(zhì) 3 1 3 Java 的 RMI 技術(shù) RMI Remote Method Invoke 是 Java 的遠(yuǎn)程方法調(diào)用技術(shù) 支持 Java 的分布式對象之間的方法調(diào)用 本系統(tǒng)的控制功能就是利用 RMI 技 術(shù)直接調(diào)用遠(yuǎn)程計算機的鼠標(biāo)和鍵盤控制方法 執(zhí)行各種操作 RMI 使用 Java 語言接口定義了遠(yuǎn)程對象 它集合了 Java 序列化和 局域網(wǎng)中遠(yuǎn)程桌面監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn) 第 3 章 8 Java 遠(yuǎn)程方法協(xié)議 Java Remote Method Protocol 簡單地說 這樣使原先 的程序在同一操作系統(tǒng)的方法調(diào)用 變成了不同操作系統(tǒng)之間程序的方法 調(diào)用 RMI Remote Method Invocation 遠(yuǎn)程方法調(diào)用 是用 Java 在 JDK1 1 中實現(xiàn)的 它大大增強了 Java 開發(fā)分布式應(yīng)用的能力 Java 作為 一種風(fēng)靡一時的網(wǎng)絡(luò)開發(fā)語言 其巨大的威力就體現(xiàn)在它強大的開發(fā)分布 式網(wǎng)絡(luò)應(yīng)用的能力上 而 RMI 就是開發(fā)百分之百純 Java 的網(wǎng)絡(luò)分布式應(yīng) 用系統(tǒng)的核心解決方案之一 RMI 目前使用 Java 遠(yuǎn)程消息交換協(xié)議 JRMP Java Remote Messaging Protocol 進行通信 JRMP 是專為 Java 的遠(yuǎn)程對象制定的協(xié)議 因此 Java RMI 具有 Java 的 Write Once Run Anywhere 的優(yōu)點 是分布式應(yīng) 用系統(tǒng)的百分之百純 Java 解決方案 用 Java RMI 開發(fā)的應(yīng)用系統(tǒng)可以部 署在任何支持 JRE Java Run Environment Java 運行環(huán)境 的平臺上 但 由于 JRMP 是專為 Java 對象制定的 因此 RMI 對于用非 Java 語言開發(fā) 的應(yīng)用系統(tǒng)的支持不足 不能與用非 Java 語言書寫的對象進行通信 RMI 應(yīng)用程序通常包括兩個獨立的程序 服務(wù)器程序和客戶機程序 典型 的服務(wù)器應(yīng)用程序?qū)?chuàng)建多個遠(yuǎn)程對象 使這些遠(yuǎn)程對象能夠被引用 然 后等待客戶機調(diào)用這些遠(yuǎn)程對象的方法 而典型的客戶機程序則從服務(wù)器 中得到一個或多個遠(yuǎn)程對象的引用 然后調(diào)用遠(yuǎn)程對象的方法 RMI 為服 務(wù)器和客戶機進行通信和信息傳遞提供了一種機制 RMI 的主要優(yōu)點如下 面向?qū)ο?RMI 可將完整的對象作為參數(shù)和返回值進行傳遞 而不僅 僅是預(yù)定義的數(shù)據(jù)類型 RMI 不需額外的客戶程序代碼 將對象分解成基 本數(shù)據(jù)類型 直接跨網(wǎng)傳遞對象 安全 RMI 使用 Java 內(nèi)置的安全機制保證下載執(zhí)行程序時用戶系統(tǒng) 的安全 RMI 使用專門為保護系統(tǒng)免遭惡意小應(yīng)用程序侵害而設(shè)計的安全 管理程序 可保護系統(tǒng)和網(wǎng)絡(luò)免遭潛在的惡意下載程序的破壞 便于編寫和使用 RMI 使得 Java 遠(yuǎn)程服務(wù)程序和訪問這些服務(wù)程序 的 Java 客戶程序的編寫工作變得輕松 簡單 遠(yuǎn)程接口實際上就是 Java 接口 服務(wù)程序大約用三行指令宣布本身是服務(wù)程序 其它方面則與任何 局域網(wǎng)中遠(yuǎn)程桌面監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn) 第 3 章 9 其它 Java 對象類似 這種簡單方法便于快速編寫完整的分布式對象系統(tǒng)的 服務(wù)程序 并快速地制作軟件的原型和早期版本 以便于進行測試和評估 因為 RMI 程序編寫簡單 所以維護也簡單 編寫一次 到處運行 RMI 是 Java 編寫一次 到處運行 方法的一部 分 任何基于 RMI 的系統(tǒng)均可 100 地移植到任何 Java 虛擬機上 分布式垃圾收集 RMI 采用其分布式垃圾收集功能收集不再被網(wǎng)絡(luò)中 任何客戶程序所引用的遠(yuǎn)程服務(wù)對象 與 Java 虛擬機內(nèi)部的垃圾收集類 似 分布式垃圾收集功能允許用戶根據(jù)自己的需要定義服務(wù)器對象 并且 明確這些對象在不再被客戶機引用時會被刪除 并行計算 RMI 采用多線程處理方法 可使服務(wù)器利用這些 Java 線 程更好地并行處理客戶端的請求 3 2 可行性分析 3 2 1 技術(shù)可行性 遠(yuǎn)程控制技術(shù)早在 DOS 時代就已經(jīng)存在 只是受到當(dāng)時硬件環(huán)境和 網(wǎng)絡(luò)技術(shù)的制約 沒有得到更多的關(guān)注 隨著網(wǎng)絡(luò)的迅速發(fā)展 這項技術(shù) 越來越熱門 發(fā)展至今以非常成熟 對于以上所采用的技術(shù) Java 對其支持已非常完善 關(guān)于 Socket 的 API 存在于 J 這個包里面 因此只要導(dǎo)入這個包 就可以完成兩個進程之間相互通訊 其中一個進程提供一個固定的位置 而另一個進程則只需要知道這個固定的位置 并去建立兩者之間的聯(lián)系 然后完成數(shù)據(jù)的通訊就可以了 關(guān)于 JPEG 的 API 存在于 com sun image codec jpeg 包中 因此只要導(dǎo) 入這個包就可以對圖像進行 JPEG 編解碼了 關(guān)于 RMI 可能顯得有些復(fù)雜 但只要完成以下四步就可以創(chuàng)建一個 RMI 應(yīng)用 1 創(chuàng)建遠(yuǎn)程接口 繼承 java rmi Remote 接口 2 創(chuàng)建遠(yuǎn) 程類 實現(xiàn)遠(yuǎn)程接口 3 創(chuàng)建服務(wù)器程序 負(fù)責(zé)在 rmiregistry 注冊表中 注冊遠(yuǎn)程對象 4 創(chuàng)建客戶程序 負(fù)責(zé)定位遠(yuǎn)程對象 并且調(diào)用遠(yuǎn)程對 局域網(wǎng)中遠(yuǎn)程桌面監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn) 第 3 章 10 象的方法 綜上所述 本系統(tǒng)的開發(fā)技術(shù)可行 3 2 2 經(jīng)濟可行性 本軟件成本低廉 對硬件要求也不高 對于支持 TCP IP 協(xié)議的局域 網(wǎng)來說 不需要購買更多的硬件設(shè)施 適合于目前大多數(shù)的網(wǎng)絡(luò)環(huán)境 所 以說本系統(tǒng)的開發(fā)經(jīng)濟可行 3 3 編程語言與開發(fā)工具 本系統(tǒng)采用 Java 編程語言實現(xiàn) 由 NetBeansIDE6 7 開發(fā) 3 3 1 Java 編程語言 Java 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 程序設(shè)計 語言和 Java 平臺的總稱 用 Java 實現(xiàn)的 HotJava 瀏覽器 支持 Java applet 顯示了 Java 的魅力 跨平臺 動態(tài)的 Web Internet 計算 從此 Java 被廣泛接受并推動了 Web 的迅速發(fā)展 常用的瀏覽器現(xiàn)在均支持 Java applet 另一方面 Java 技術(shù)也不斷更新 Java 平臺由 Java 虛擬機 Java Virtual Machine 和 Java 應(yīng)用編程接 口 Application Programming Interface 簡稱 API 構(gòu)成 Java 應(yīng)用編程 接口為 Java 應(yīng)用提供了一個獨立于操作系統(tǒng)的標(biāo)準(zhǔn)接口 可分為基本部分 和擴展部分 在硬件或操作系統(tǒng)平臺上安裝一個 Java 平臺之后 Java 應(yīng)用 程序就可運行 現(xiàn)在 Java 平臺已經(jīng)嵌入了幾乎所有的操作系統(tǒng) 這樣 Java 程序可以只編譯一次 就可以在各種系統(tǒng)中運行 3 3 2 NetBeans 開發(fā)工具 NetBeans 由 Sun 公司在 2000 年創(chuàng)立 它是開發(fā)人員和客戶社區(qū)的家 園 旨在構(gòu)建世界級的 Java IDE NetBeans 當(dāng)前可以在 Solaris Windows Linux 和 Macintosh OS X 平臺上進行開發(fā) 并在 局域網(wǎng)中遠(yuǎn)程桌面監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn) 第 3 章 11 SPL Sun 公用許可 范圍內(nèi)使用 NetBeans 是一個全功能的開放源碼 Java IDE 可以幫助開發(fā)人員編寫 編譯 調(diào)試和部署 Java 應(yīng)用 并將版本控制和 XML 編輯融入其眾多功能 之中 NetBeans 可支持 Java 2 平臺標(biāo)準(zhǔn)版 J2SE 應(yīng)用的創(chuàng)建 采用 JSP 和 Servlet 的 2 層 Web 應(yīng)用的創(chuàng)建 以及用于 2 層 Web 應(yīng)用的 API 及軟件 的核心組的創(chuàng)建 所有這些都為 Java 開發(fā)人員創(chuàng)造了一個可擴展的開放源 多平臺的 Java IDE 以支持他們在各自所選擇的環(huán)境中從事開發(fā)工作 如 Solaris Linux Windows 或 Macintosh NetBeans 是一個為軟件開發(fā)者而設(shè)計的自由 開放的 IDE 集成開發(fā) 環(huán)境 可以在這里獲得許多需要的工具 包括建立桌面應(yīng)用 企業(yè)級應(yīng) 用 WEB 開發(fā)和 JAVA 移動應(yīng)用程序開發(fā) C C 甚至 Ruby NetBeans 可以非常方便的安裝于多種操作系統(tǒng)平臺 包括 Windows Linux Mac OS 和 Solaris 等操作系統(tǒng) 局域網(wǎng)中遠(yuǎn)程桌面監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn) 第 4 章 12 第 4 章 系統(tǒng)分析與設(shè)計 4 1 系統(tǒng)基本框架 系統(tǒng)基本框架 如圖 4 1 所示 在支持 TCP IP 協(xié)議的局域網(wǎng)中 本 地計算機與遠(yuǎn)程主機通過物理網(wǎng)絡(luò)相連 遠(yuǎn)程主機運行被控端程序 監(jiān)聽 固定端口等待連接 本地計算機運行主控端程序 連接指定端口 兩端的 程序通過套接字 Socket 建立連接 并通過 Socket 輸入輸出流收發(fā)信息 實現(xiàn)監(jiān)視和控制功能 Socket 通過 TCP IP 協(xié)議實現(xiàn)兩端計算機的數(shù)據(jù)通 信 物理網(wǎng)絡(luò) 支持 TCP IP 協(xié)議局域網(wǎng) 如 IEEE802 3 發(fā)送 接收 發(fā)送 接收 建 立 連 接 主控端 客戶端 被控端 服務(wù)端 連接遠(yuǎn)程主機等待遠(yuǎn)程連接 發(fā)送控制信息執(zhí)行控制命令 圖 4 1 系統(tǒng)基本框架 獲取桌面信息顯示桌面信息 Socket TCP IP 局域網(wǎng)中遠(yuǎn)程桌面監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn) 第 4 章 13 4 2 系統(tǒng)總體設(shè)計與功能結(jié)構(gòu) 總體功能結(jié)構(gòu) 如圖 4 2 所示 包括主控端和被控端兩大部分 其中 主控端包括三大模塊 即 本地的配置管理模塊 接收遠(yuǎn)程主機發(fā)送的桌 面信息并繪制到組件顯示 實現(xiàn)監(jiān)視功能模塊和發(fā)送控制信息實現(xiàn)對遠(yuǎn)程 主機的控制功能模塊 被控端也包括三大模塊 即 本地配置管理模塊 獲取并發(fā)送桌面圖片為主控端的監(jiān)視提供信息服務(wù)模塊和響應(yīng)主控端的控 制請求模塊 按控制信息進行指定的操作 遠(yuǎn)程桌面監(jiān)控系統(tǒng) 主控端 客戶端 被控端 服務(wù)端 配 置 管 理 模 塊 發(fā) 送 桌 面 信 息 配 置 管 理 模 塊 響 應(yīng) 控 制 模 塊 遠(yuǎn) 程 控 制 模 塊 顯 示 遠(yuǎn) 程 桌 面 圖 4 2 總體功能結(jié)構(gòu) 4 3 主控端系統(tǒng)設(shè)計與功能結(jié)構(gòu) 主控端程序是遠(yuǎn)程桌面監(jiān)控系統(tǒng)兩大組成部分之一 它要實現(xiàn)對遠(yuǎn)程 主機的基本監(jiān)視功能 在控制功能上還要對各個細(xì)節(jié) 如 鼠標(biāo)的單擊 雙擊 拖拽 滾輪等 加以實現(xiàn) 除此之外 對還要實現(xiàn)系統(tǒng)的基本配置 功能 這都無疑增加了程序的復(fù)雜性 對系統(tǒng)分塊處理是降低其復(fù)雜性的 有效方法 本系統(tǒng)將主控端程序分成三大模塊 逐一實現(xiàn) 局域網(wǎng)中遠(yuǎn)程桌面監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn) 第 4 章 14 4 3 1 配置管理模塊 配置管理模塊主要實現(xiàn)對系統(tǒng)的基本操作和設(shè)置 并增加一些附加功 能 可以提高整個系統(tǒng)的性能 使其功能更強 配置管理模塊的功能結(jié)構(gòu)如圖 4 3 所示 包括兩大功能 基本操作功 能和掃描可連主機功能 1 基本操作功能 輸入 IP 地址 輸入要監(jiān)控的遠(yuǎn)程主機的 IP 地址 格式采用點分 1 十進制 32 位的 IP V4地址 輸入端口號 輸入遠(yuǎn)程主機被控端程序監(jiān)聽的端口號 為了避 2 免與其它應(yīng)用程序發(fā)生沖突 端口號應(yīng)大于 1024 小于 65535 輸入連接密碼 出于安全考慮 防止非法用戶連接遠(yuǎn)程主機 3 被控端應(yīng)要求主控端輸入正確的鏈接密碼 輸入發(fā)送速度 為了滿足用戶對網(wǎng)絡(luò)通信量和系統(tǒng)實時性的不 4 同要求 本系統(tǒng)可以手動設(shè)置發(fā)送速度 發(fā)送速度從 0 毫秒抓取一張至 1000 毫秒抓取一張 速度越快 實時性越好 但是通信量越大 速度越慢 通信量越小 但實時性越差 系統(tǒng)默認(rèn) 100 毫秒抓取一張 2 掃描可連主機功能 在局域網(wǎng)中包含很多主機 對于主控端來說 需要知道哪些主機可以 連接并且獲取可連接主機的 IP 地址 掃描可連主機成為提高系統(tǒng)實用性 與方便操作的重要功能 在大多數(shù)局域網(wǎng)中 主機的網(wǎng)絡(luò)地址是相同的 子網(wǎng)掩碼是相同的 主機 地址是連續(xù)的 這就使掃描可連主機成為了可能 對于設(shè)定的一段 IP 地 址 按照設(shè)定的端口逐個連接來判斷其可連接性 就解決來上述問題 輸入掃描端口號 輸入遠(yuǎn)程主機被控端程序監(jiān)聽的端口號 數(shù) 1 值應(yīng)大于 1024 小于 65535 分別輸入起始 IP 地址和結(jié)束 IP 地址 其中網(wǎng)絡(luò)號應(yīng)相同 子網(wǎng) 2 掩碼是 255 255 255 000 3 信息顯示功能 信息顯示功能用于實時顯示系統(tǒng)的狀態(tài) 獲取一些相關(guān)的信息 如系 局域網(wǎng)中遠(yuǎn)程桌面監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn) 第 4 章 15 統(tǒng)開始運行的時間 對操作錯誤的提示 本地的主機名和 IP 地址等 配置管理模塊 基本操作功能掃描可連主機功能 輸 入 IP 地 址 輸 入 端 口 號 輸 入 連 接 密 碼 輸 入 發(fā) 送 速 度 要 掃 描 端 口 號 起 始 IP 地 址 結(jié) 束 IP 地 址 信 息 顯 示 功 能 圖 4 3 主控端配置管理模塊 4 3 2 顯示遠(yuǎn)程桌面模塊 顯示遠(yuǎn)程桌面模塊的功能結(jié)構(gòu)如圖 4 4 所示 它是主控端的核心部分 不僅需要讀取輸入流中的數(shù)據(jù)并解碼 而且需要將圖片繪制到自己創(chuàng)建的 容器中 除此之外 還要在容器中添加遠(yuǎn)程控制的開關(guān)組件和調(diào)節(jié)發(fā)送速 度的組件 1 顯示遠(yuǎn)程桌面 讀取輸入流中的數(shù)據(jù)并解碼 連接建立后 從輸入流中讀取的數(shù) 1 據(jù)是經(jīng)過被控端編碼后發(fā)送過來 因此需要解碼才能將圖片繪制到容器 創(chuàng)建容器并繪制圖片 創(chuàng)建的容器與圖片的大小會不一致 因此 2 需要根據(jù)容器的大小計算圖片的縮放比例 2 開關(guān)遠(yuǎn)程控制 對遠(yuǎn)程主機的控制在需要時開啟 在不需要時關(guān)閉可以提高系統(tǒng)的靈 活性 因此需要在容器中添加開關(guān)按鈕 3 調(diào)節(jié)發(fā)送速度 局域網(wǎng)中遠(yuǎn)程桌面監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn) 第 4 章 16 為了滿足用戶對網(wǎng)絡(luò)通信量和系統(tǒng)實時性的不同要求 本系統(tǒng)可以隨 時改變發(fā)送速度 發(fā)送速度從 0 毫秒抓取一張至 1000 毫秒抓取一張 速 度越快 實時性越好 但是通信量越大 速度越慢 通信量越小 但實時 性越差 系統(tǒng)默認(rèn) 100 毫秒抓起一張 顯示遠(yuǎn)程桌面模塊 顯 示 遠(yuǎn) 程 桌 面 關(guān) 閉 遠(yuǎn) 程 控 制 調(diào) 節(jié) 發(fā) 送 頻 率 開 啟 遠(yuǎn) 程 控 制 圖 4 4 主控端顯示遠(yuǎn)程桌面模塊 4 3 3 遠(yuǎn)程控制模塊 遠(yuǎn)程控制模塊主要實現(xiàn)對遠(yuǎn)程主機的鼠標(biāo)和鍵盤進行控制 其功能結(jié) 構(gòu)如圖 4 5 所示 遠(yuǎn)程控制模塊主要包括 鼠標(biāo)操作功能和鍵盤操作功能 1 鼠標(biāo)操作功能 根據(jù)本地計算機的鼠標(biāo)事件向遠(yuǎn)程主機發(fā)送控制信息 2 鍵盤操作功能 根據(jù)本地計算機的鍵盤事件向遠(yuǎn)處主機發(fā)送控制信息 局域網(wǎng)中遠(yuǎn)程桌面監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn) 第 4 章 17 遠(yuǎn)程控制模塊 鼠標(biāo)操作功能鍵盤操作功能 鼠 標(biāo) 雙 擊 控 制 鼠 標(biāo) 移 動 控 制 鼠 標(biāo) 滾 輪 控 制 鼠 標(biāo) 拖 拽 控 制 按 鍵 按 下 控 制 按 鍵 抬 起 控 制 鼠 標(biāo) 單 擊 控 制 控 制 發(fā) 送 頻 率 圖 4 5 主控端遠(yuǎn)程控制模塊 4 4 被控端設(shè)計功能結(jié)構(gòu) 被控端程序同主控端程序一樣也是遠(yuǎn)程桌面監(jiān)控系統(tǒng)的重要組成部分 它不僅要抓取桌面圖片 并且編碼后發(fā)送到輸出流 還要按照主控端的控 制請求執(zhí)行相應(yīng)操作 除此之外 對還要實現(xiàn)系統(tǒng)的基本配置功能 這都 無疑增加了程序的復(fù)雜性 對系統(tǒng)分塊處理是降低其復(fù)雜性的有效方法 本系統(tǒng)將被控端程序分成三大模塊 逐一實現(xiàn) 4 4 1 配置管理模塊 配置管理模塊主要實現(xiàn)對系統(tǒng)的基本操作和設(shè)置 并增加一些安全方 面的考慮 以提高系統(tǒng)的安全性 配置管理模塊功能結(jié)構(gòu)如圖 4 6 所示 包括兩大功能 安全管理功能 和系統(tǒng)基本設(shè)置功能 1 安全管理功能 只有輸入正確的管理密碼才能退出系統(tǒng)或改變系統(tǒng)設(shè)置 2 系統(tǒng)基本設(shè)置 局域網(wǎng)中遠(yuǎn)程桌面監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn) 第 4 章 18 在正確輸入了管理密碼后 可以對系統(tǒng)進行設(shè)置 包括重設(shè)端口號 連接密碼 管理密碼和恢復(fù)默認(rèn)值等等 圖 4 6 被控端配置管理模塊 配置管理模塊 安全管理功能 輸 入 退 出 密 碼 輸 入 設(shè) 置 密 碼 信 息 顯 示 窗 口 系 統(tǒng) 退 出 操 作 系統(tǒng)基本設(shè)置 恢 復(fù) 默 認(rèn) 設(shè) 置 重 設(shè) 監(jiān) 聽 端 口 重 設(shè) 連 接 密 碼 重 設(shè) 管 理 密 碼 4 4 2 發(fā)送桌面信息模塊 為減少通信量 抓取圖片后都與上一次抓取的圖片進行比較 如果相 同則不發(fā)送 如果不同再發(fā)送 發(fā)送桌面信息模塊如圖 4 7 所示 1 獲取桌面信息 根據(jù)設(shè)定的發(fā)送速度 每個一段時間抓取一幅桌面圖片 然后進行比 較 2 圖片信息編碼 對抓取的圖片進行比較后 如果不同就按照 JPEG 格式對圖片進行壓 縮 3 編碼信息輸出 將壓縮后的圖片信息寫入輸出流 局域網(wǎng)中遠(yuǎn)程桌面監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn) 第 4 章 19 發(fā)送桌面信息模塊 編 碼 信 息 輸 出 圖 片 信 息 編 碼 獲 取 桌 面 信 息 圖 4 7 被控端發(fā)送桌面信息模塊 4 4 3 響應(yīng)控制模塊 響應(yīng)控制模塊的功能結(jié)構(gòu)如圖 4 8 所示 它主要是根據(jù)主控端的控制 信息 執(zhí)行相應(yīng)的鍵盤和鼠標(biāo)操作 包括鼠標(biāo)操作功能和鍵盤操作功能 響應(yīng)控制模塊 鼠標(biāo)操作功能鍵盤操作功能 鼠 標(biāo) 雙 擊 響 應(yīng) 鼠 標(biāo) 移 動 響 應(yīng) 鼠 標(biāo) 滾 輪 響 應(yīng) 鼠 標(biāo) 拖 拽 響 應(yīng) 按 鍵 按 下 響 應(yīng) 按 鍵 抬 起 響 應(yīng) 鼠 標(biāo) 單 擊 響 應(yīng) 改 變 發(fā) 送 速 度 圖 4 8 被控端響應(yīng)控制模塊 局域網(wǎng)中遠(yuǎn)程桌面監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn) 第 5 章 20 第 5 章 系統(tǒng)實現(xiàn) 5 1 系統(tǒng)實現(xiàn)思路 基于以上系統(tǒng)分析 遠(yuǎn)程桌面監(jiān)控系統(tǒng)實際上是主控端程序與被控端 程序通過套接字 Socket 建立連接并進行數(shù)據(jù)通信 達到監(jiān)控與被監(jiān)控的目 的 因此 需要兩個獨立的程序 ClientProgram 主控端 和 ServiceProgram 被控端 其程序總體流程如圖 5 1 所示 首先 ServiceProgram 被控端 監(jiān)聽設(shè)定的端口 等待 ClientProgram 主控端 的連接請求 ClientProgram 連接指定端口 與 SreviceProgram 建立連接后 ServiceProgram 抓取桌面圖像 編碼后發(fā)送 ClientProgram 接收圖像 解 碼后繪制到組件上顯示 ClientProgram 發(fā)送控制請求 ServiceProgram 響 應(yīng)控制請求并按控制信息進行相應(yīng)操作 局域網(wǎng)中遠(yuǎn)程桌面監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn) 第 5 章 21 否 是 否 是 否 是 開 始 服務(wù)端監(jiān)聽端口等待連接 連接 發(fā)送桌面信息 獲取桌面信息 執(zhí)行控制命令 斷開連接 響應(yīng)連接請求 連 接 接收桌面信息 顯示遠(yuǎn)程桌面接收控制信息 輸入 IP 地址 輸入端口號 發(fā)送控制信息 圖 5 1 程序總體流程圖 SericeProgram ClientProgram 開 始 是 結(jié) 束 斷開連接 程序終止 否 是 結(jié) 束 否 程序終止 局域網(wǎng)中遠(yuǎn)程桌面監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn) 第 5 章 22 5 2 主控端程序 Client Program 進程是操作系統(tǒng)結(jié)構(gòu)的基礎(chǔ) 是一個正在執(zhí)行的程序 當(dāng)運行一個程 序 就啟動了一個進程 主控端程序的運行就啟動了一個進程 進程又被 細(xì)化為線程 也就是一個進程下有多個能獨立運行的更小的單位 雖然在 感覺上 多個線程是在同時運行 但事實上 在某一時間點上 CPU 運行 的線程只有一個 在 Java 語言中實現(xiàn) Runnable 接口是創(chuàng)建線程的一個必要條件 Runnable 接口位于 java lang 包中 它只有一個方法 run run 方法沒有 返回值 使用實現(xiàn)接口 Runnable 的對象創(chuàng)建一個線程時 啟動該線程將 導(dǎo)致在獨立執(zhí)行的線程中調(diào)用對象的 run 方法 本系統(tǒng)在主控端程序 ClientProgram 定義兩個線程分別是 遠(yuǎn)程桌 面監(jiān)控線程 ReceiveImageThread 和配置管理線程 MainFrameThread MainFrameThread 線程實現(xiàn)基本操作功能和掃描可連主機功能 ReceiveImageThread 線程實現(xiàn)桌面顯示功能 對遠(yuǎn)程主機的鼠標(biāo)和鍵盤操 作的功能 5 2 1 配置管理模塊中的基本操作功能 1 程序流程圖與運行效果圖 基本操作功能程序流程如圖 5 2 所示 它是 ClientProgram 的開始 它 的主要功能是接收用戶輸入的數(shù)據(jù) 定義遠(yuǎn)程主機的 IP 地址和端口號 只有確定了運行 ServiceProgram 的遠(yuǎn)程主機的 IP 地址 才能進行互聯(lián) 局域網(wǎng)中遠(yuǎn)程桌面監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn) 第 5 章 23 是 否 否 否 否 否 是 是 是 否 是 開始 輸入 IP 地址和端口 號 輸入連接密碼 輸入發(fā)送速度 按鈕事件 監(jiān)聽 連接 按鈕 IP 地址與端口號正確 斷開連接 頻率正確 連接遠(yuǎn)程主機 默認(rèn) 100 圖 5 2 主控端基本操作功能程序流程圖 是 程序終止 結(jié) 束 連接成功 顯示遠(yuǎn)程桌面模塊 在基本操作界面中 放置了 4 個單行文本框 兩個按鈕和一個多行文 本框 運行效果如圖 5 3 所示 局域網(wǎng)中遠(yuǎn)程桌面監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn) 第 5 章 24 圖 5 3 主控端基本操作界面 2 實現(xiàn)主控端基本操作界面的關(guān)鍵步驟如下 編寫 MainFrameThread 類實現(xiàn) Runnable 接口 覆蓋 public void 1 run 方法 創(chuàng)建程序主界面線程 編寫 連接 按鈕的事件處理方法 該方法從相應(yīng)文本框中獲取 2 用戶輸入的 IP 地址 端口號和連接密碼等信息 并根據(jù)相應(yīng)信息與遠(yuǎn)程 主機建立連接 并啟動遠(yuǎn)程桌面監(jiān)控線程 編寫 拉開 按鈕的事件處理方法 該方法用于實現(xiàn)掃描可連主 3 機功能 編寫 getTime 方法 該方法在程序啟動時調(diào)用 記錄系統(tǒng)啟動時 4 間 在用戶進行其他操作時也調(diào)用本方法 編寫 initSystemTray 方法 該方法可以將程序窗體隱藏 只在系 5 統(tǒng)托盤中提供一個托盤圖標(biāo) 可以使用鼠標(biāo)單擊該圖片 顯示程序窗體 3 類 構(gòu)造函數(shù)和主要方法介紹 在基本操作功能中用到的類主要有 JFrame JLabel JButton TextField TextArea SystemTray TrayIcon I mageIcon InetAddress GregorianCalendar JFrame 類位于 javax swing 包 1 主要功能 局域網(wǎng)中遠(yuǎn)程桌面監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn) 第 5 章 25 創(chuàng)建帶有標(biāo)題和邊框的頂層窗口 在本模塊中用于創(chuàng)建程序界面 構(gòu)造函數(shù) JFrame String title 創(chuàng)建一個新的 初始不可見的 具有指定標(biāo)題的 Frame 主要方法 public Component add Component comp 將指定組件添加到此容器中 public void setResizable boolean resizable 設(shè)置此窗體是否可由用戶調(diào) 整大小 JLabel 類位于 javax swing 包 2 主要功能 Label 對象是一個可在容器中放置文本的組件 構(gòu)造函數(shù) Label String text 使用指定的文本字符串構(gòu)造一個新的標(biāo)簽 主要方法 public void setText String text 將此標(biāo)簽的文本設(shè)置為指定的文本 JButton 類位于 javax swing 包 3 主要功能 創(chuàng)建一個標(biāo)簽按鈕 當(dāng)按下該按鈕時 應(yīng)用程序能執(zhí)行某項動作 構(gòu)造函數(shù) JButton String label 構(gòu)造一個帶指定標(biāo)簽的按鈕 主要方法 public void setText String text 設(shè)置按鈕的文本 TextField 類位于 java awt 包 4 主要功能 TextField 對象是允許編輯單行文本的文本組件 構(gòu)造函數(shù) public TextField 構(gòu)造新文本字段 主要方法 public String getText 返回此文本組件表示的文本 局域網(wǎng)中遠(yuǎn)程桌面監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn) 第 5 章 26 TextArea 類位于 java awt 包 5 主要功能 TextArea 對象是顯示文本的多行區(qū)域 構(gòu)造函數(shù) public TextArea 構(gòu)造一個將空字符串作為文本的新文本區(qū) 主要方法 public void append String str 將給定文本追加到文本區(qū)的當(dāng)前文本 SyatemTray 類位于 java awt 包 6 主要功能 SystemTray 類表示桌面的系統(tǒng)托盤 主要方法 public static SystemTray getSystemTray 獲取表示系統(tǒng)托盤的 SystemTray 實例 public void add TrayIcon trayIcon 將 TrayIcon 添加到 SystemTray 一 旦添加了托盤圖標(biāo) 就可以在系統(tǒng)托盤中看到它 TrayIcon 類位于 java awt 包 7 主要功能 TrayIcon 對象表示可以添加到系統(tǒng)托盤的托盤圖標(biāo) 構(gòu)造函數(shù) public TrayIcon Image image 創(chuàng)建帶有指定圖像的 TrayIcon 主要方法 public void setImageAutoSize boolean autosize 設(shè)置自動調(diào)整大小的屬 性 ImageIcon 類位
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電子競技產(chǎn)業(yè)合作合同
- 智能垃圾分類教學(xué)機器人行業(yè)跨境出海戰(zhàn)略研究報告
- 企業(yè)安全生產(chǎn)能力鑒定試卷加答案
- 碘曲葡胺企業(yè)縣域市場拓展與下沉戰(zhàn)略研究報告
- 智能果蔬封裝設(shè)備行業(yè)跨境出海戰(zhàn)略研究報告
- 潮鞋無線充電技術(shù)應(yīng)用企業(yè)制定與實施新質(zhì)生產(chǎn)力戰(zhàn)略研究報告
- 瑪咖精力補充片行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報告
- 汽車倉庫租賃合同
- 補充離婚財產(chǎn)分割合同
- 復(fù)方氨基酸注射液企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級戰(zhàn)略研究報告
- 2023年同等學(xué)力申碩《英語》試題真題及答案
- 2024年云南師范大學(xué)實驗中學(xué)招聘考試真題
- 風(fēng)電項目施工工藝及流程
- 鑄造行業(yè)安全培訓(xùn)課件
- 2025年電力人工智能多模態(tài)大模型創(chuàng)新技術(shù)及應(yīng)用報告-西安交通大學(xué)
- 喝酒協(xié)議書范本
- 應(yīng)急物業(yè)合同范本
- 企業(yè)變更 備案 申請書
- 人教部編版八年級道德與法治上冊:8.2《堅持國家利益至上》聽課評課記錄3
- 《“長賜”輪擱淺蘇伊士運河事故探析及預(yù)防對策探究》7700字
- 貴州文物調(diào)查研究-從文物看中華民族共同體歷史的區(qū)域?qū)嵺`知到智慧樹章節(jié)測試課后答案2024年秋貴州民族大學(xué)
評論
0/150
提交評論