[源碼和文檔分享]基於JAVA的遠程屏幕監控系統

遠程屏幕監控系統在生活中是很常見的,學校機房的機房管理系統、PC版QQ的遠程演示功能等都屬於遠程屏幕監控系統。監控系統的原理是經過客戶端不斷的截取屏幕發送到服務器端,服務器端進而將畫面呈現出來的過程。本論文實現的是一個多客戶端的遠程屏幕監控系統。html

本論文第一部分對系統進行項目分析,包括需求分析、可行性分析、相關技術分析,大體介紹了整個項目須要作的工做以及須要掌握的技術,介紹了Socket通訊原理、截屏原理、Swing樹、系統托盤、自定義JPanel實現顯示監控圖像以及多線程的知識。java

第二部分分別對系統托盤模塊、自定義協議模塊、獲取屏幕截圖模塊、連續發送與接收圖片模塊、登陸、退出模塊、多客戶端處理模塊、Swing樹模塊、自定義JPanel模塊進行介紹。我沒有直接搬上一大堆的理論知識,而是先簡要介紹模塊功能,而後按照正常思考的思路去實現項目須要的功能,而且去分析實現這個功能的必要性。遇到問題以後就分析出現這個問題的緣由以及考慮如何去提高效率、減小存儲空間等一系列優化問題。而後經過最後的分析給出一個優化後的解決方案,同時我將本身當時思考的錯誤點也羅列了出來,對多個處理方法都給予了嘗試。針對每一個模塊都給出了功能的實現詳細步驟以及示例代碼。數組

第三部分是Web服務器環境配置以及程序使用說明。本項目是遠程屏幕監控系統,若是要測試的話,服務器端的程序是須要部署在服務器上的,因此我將本機Web服務器環境配置的方法也講解一下,另外還有關於本程序代碼如何打包等知識都有講解。服務器

第四部分是我在寫項目的過程當中的犯的一些錯誤以及項目的難點,第五部分是對該系統後續的一些功能的設想,第六部分是個人一些感想,第七部分是項目運行效果的展現。網絡

關鍵字:屏幕監控;Socket;Swing;自定義協議;Web服務器環境配置多線程

1、項目分析

1.1 需求性分析

項目的初始階段就是對整個系統進行預估,這有利於咱們對整個系統的理解,屏幕監控系統須要實現的功能有:socket

  • 客戶端登陸、退出工具

  • 客戶端截屏以及連續發送圖像測試

  • 客戶端系統托盤功能優化

  • 服務器端連續接收圖像以及客戶端其餘請求

  • 服務器端顯示鏈接用戶的用戶樹

  • 客戶端退出後用戶樹刷新

  • 客戶端發送圖像後顯示在服務器端

1.2 可行性分析

需求性分析裏提到的功能可否實現呢?咱們在這裏進行討論:

  • 經過構造自定義協議實現,都是經過將這些請求構形成協議從而發送到服務器

  • 截屏功能經過Robot類實現,而後將BufferedImage轉化爲字節數組輸出流,再轉化爲字節數組,並以協議的方式發送到服務器實現圖像的連續發送

  • 使用系統托盤對象SystemTray來實現

  • 能夠經過自定義協議工具類提供的解析數據的方法解析出數據,並根據消息類型進行相應的處理

  • 用戶樹使用JTree實現,DefaultTreeCellRenderer能夠設置樹的外觀,爲JTree設置節點選中監聽器能夠監聽節點選中事件

  • 用DefaultTreeModel的reload()方法實現

  • 能夠自定義JPanel,經過paint(g)方法繪製圖片

1.3 技術點分析

1.3.1 Socket

網絡上的兩個程序經過一個雙向的通訊鏈接實現數據的交換,這個鏈接的一端稱爲一個socket,java的API提供了對Socket的支持。

1.3.2 自定義網絡協議

網絡協議爲計算機網絡中進行數據交換而創建的規則、標準或約定的集合。爲了知足咱們的需求,咱們須要自定義一個協議,併爲其提供發送消息、解析消息的功能。

1.3.3 系統托盤

系統托盤是個特殊區域,一般在桌面的底部,項目中涉及到了對系統托盤的一些操做,咱們爲客戶端提供系統托盤功能,能夠方便用戶關閉監控。

1.3.4 IO流

流是一種抽象概念,它表明了數據的無結構化傳遞。按照流的方式進行輸入輸出,數據被當成無結構的字節序或字符序列。從流中取得數據的操做稱爲提取操做,而向流中添加數據的操做稱爲插入操做,用來進行輸入輸出操做的流就稱爲IO流。換句話說,IO流就是以流的方式進行輸入輸出。咱們主要使用的有DataOutputStream、DataInputSream、ByteArrayoOutputStream等。

 


參考文檔和完整的文檔和源碼下載地址:

https://www.write-bug.com/article/1373.html

相關文章
相關標籤/搜索