freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

局域網(wǎng)監(jiān)聽軟件的設計與開發(fā)—免費-資料下載頁

2024-12-07 09:13本頁面

【導讀】視網(wǎng)絡的狀態(tài)、數(shù)據(jù)流動情況以及網(wǎng)絡上傳輸?shù)男畔ⅲ垣@取有用信息。網(wǎng)絡犯罪進行偵察、取證時,可以使用網(wǎng)絡監(jiān)聽技術來獲取必要的信息。具有重要的現(xiàn)實意義。示、界面選擇等)。經(jīng)過測試與分析,說明了該軟件運行穩(wěn)定、可靠,具有一定。的實際應用價值。

  

【正文】 統(tǒng)計,則統(tǒng)計類的設計與層次的分類一致,如表 3所示。 表 3 統(tǒng)計類的設計與層次對照表 TCP/IP 層次 數(shù)據(jù)包統(tǒng)計類名 互聯(lián)層 NetworkProtocolStat 傳輸層 TransportProtocolStat 應用層 ApplicationProtolStat 與 analyzer 包類似,在 stat包中,我首先編寫一個抽象類 JDStatisticTaker,用來定義一些不同層次 數(shù)據(jù)包統(tǒng)計類所具有的公用函數(shù),然后在每一個類中分別定義了四個不同的變量用來存儲不同的數(shù)據(jù):不同層中各協(xié)議數(shù)據(jù)包所占的數(shù)量比重( long[] numOfPs)、不同層數(shù)據(jù)包總數(shù)量( long totalPs)、不同層中各協(xié)議數(shù)據(jù)包所占的大小比重( long[] sizeOfPs)、不同層數(shù)據(jù)包的總大?。?long totalSize);在構造函數(shù)中提取各個層協(xié)議數(shù)量,分配 numOfPs 和 sizeOfPs 兩個數(shù)組的大??;定義函數(shù) analyze用于對一組數(shù)據(jù)包進行統(tǒng)計;定義函數(shù) addPacket用于對每接收到一個數(shù)據(jù)包 進行累加統(tǒng)計。 stat 包中各個類的作用與實現(xiàn)方式 ( 1) 此類是一個抽象類,用于定義一些不同層次數(shù)據(jù)包統(tǒng)計類所具有的公共函數(shù),將所有截獲的數(shù)據(jù)包按照所屬協(xié)議的層次分別進行統(tǒng)計,則統(tǒng)計類的設計與層次的分類一致。 ( 2) 此類是網(wǎng)絡層的數(shù)據(jù)包統(tǒng)計類,分配四個不同的變量用來存儲網(wǎng)絡層不同的協(xié)議數(shù)量,在該類中的構造函數(shù)用來提取網(wǎng)絡層協(xié)議數(shù)量,分配數(shù)組大??;并用getName()方法來得到該協(xié)議層的名字;然后用 analyze方法來分析數(shù)據(jù)包,并進行統(tǒng)計;最后使用 addPacket方法來將所分析的到的數(shù)據(jù)包加入到不同的變量中,進行及時的更新操作。 ( 3) 此類是傳輸層的數(shù)據(jù)包統(tǒng)計類,與網(wǎng)絡層的統(tǒng)計方法類似,在此不再重復,可參考相應源程序文件。 ( 4) 此類是傳輸層的數(shù)據(jù)包統(tǒng)計類,與網(wǎng)絡層的統(tǒng)計方法類似,在此不再重復,可參考相應源程序文件。 ui包的設計 ui 包的作用 圖 9 開始程序界 面 向 JSniffer 工程中添加 ui 包,步驟與添加 analyzer 包和 stat包一致。 Ui 包中的所有類主要實現(xiàn)該程序的界面排版,將實現(xiàn)程序界面的所有的類封裝在“ ui”包中。該包中將程序主界面分為四個部分,分別用不同的組件去實現(xiàn),它包括菜單欄,工具欄,以及顯示結果的 JPanel 控件,設計監(jiān)聽程序界面如圖 9所示。 每一部分所使用的組件以及所屬的類如表 4所示。 表 4 組件以及類對照表 序號 組 件 類 ① JFrame JDFrame ② JPanel JDTablePane ③ JTable JDTable ④ JTree JDTableTree ⑤ JTextArea JDTableTextArea ui 包中各個類的作用與實現(xiàn)方式 ( 1) JDFrame 類是程序的主界面,它包括菜單欄,工具欄以及用于顯示監(jiān)聽結果的 JPanel 控件,在 JPanel 中又分為三個部分,分別用組件 JTable、 JTree、 JTextArea來實現(xiàn),該類中最主要的功能在于添加對菜單和工具欄的事件響應,進行動態(tài)更新操作,設置程序在不同的運行狀態(tài)時不同的組件狀態(tài),并用 Java 提供的 方法將相應的圖片鑲嵌進程序,增強視覺效應。 ( 2) JDCaptureDialog 類的作用是選擇設備和設置設備模式,也是進行網(wǎng)絡監(jiān)聽的關鍵一步。在單擊“開始監(jiān)聽”菜單或者按鈕后會彈出一個選擇設備對話框,它是由 JDCaptureDialog 類來實現(xiàn)。 JDCaptureDialog 類利用 Jpcap 包的getDeviceList 函數(shù)和 getDeviceDescription 函數(shù)來獲取本機上可進行監(jiān)聽的所有的網(wǎng)絡設備。在確定所選擇的設備后,還可以通過設定如何截取數(shù)據(jù)包,是只截取數(shù)據(jù)包頭還是截取整個數(shù)據(jù)包。單擊確定后,通過調用 Jpcap 的 openDevice函數(shù)來打開設備。 選擇設備對話框如圖 10所示。 圖 10 選擇設備對話框 ( 3) JDTablePane類主要功能是對 JTable、 JTree、 JTextArea三個組件進行布局,這里用的是 JSplitPane布局,即進行分割布局 ( JSplitPane 用于分隔兩個 只能兩個 Component) ;同時在 JDTablePane類中還完成了協(xié)議查看菜單的設置和事件響應。對于監(jiān)聽結果的顯示是由三 個部分組成的,即 JTable組件自動更新顯示截獲并解析后的每一條數(shù)據(jù)包,在選定某一條數(shù)據(jù)包后, JTree組件顯示這個數(shù)據(jù)包具備的全部協(xié)議的協(xié)議頭部, JTextArea組件顯示這個數(shù)據(jù)包的內容。 ( 4) JDTable 類用來實現(xiàn)顯示截獲數(shù)據(jù)包解析后的結果,位于 JDTablePane 布局中的上方。該類主要功能是設置表格中顯示的內容,由 setTableView 函數(shù)來實現(xiàn); 當有新數(shù)據(jù)包解析完后進行插入,由 fireTableChanged 函數(shù)來實現(xiàn)。同時在此類中定義了 TableView 類用來表 示表格顯示的結構; JDTableModel 類是一種模式,在其中定義了對表格的一些常見操作,而 JDTable 便是 JDTableModel 模式下的表格。 Jtable 是 JavaSwing 中最復雜的組件之一,在本程序中作者還定義了JDTableRender、 TableMap 和 TableSorter 三個類用來輔助 JDTable 類的實現(xiàn),因為這三個都編寫成通用類,屬于 J2SESwing 的界面編程技巧與網(wǎng)絡監(jiān)聽沒有太大關系,因此這里不再介紹,可查看源程序文件“ 、 和 ”。 顯示截獲數(shù)據(jù)包解析后的結果如圖 11 所示: 圖 11 JDTable顯示圖 ( 5) JDTableTree 類的功能是在選擇某一個數(shù)據(jù)包后,將該數(shù)據(jù)包具有的所有協(xié)議內容組成一棵樹,父結點是協(xié)議名,子結點是協(xié)議具有的字段名,葉子是字段取值。 analyzePacket 函數(shù)實現(xiàn)了將一個數(shù)據(jù)包分解然后構造樹的過程。 addNode和 addNodes 兩個函數(shù)都是用于添加新的結點,樹中顯示的結果如圖 12所示。 圖 12 JDTableTree顯示圖 ( 6) JDTableTextArea 類所實現(xiàn)的功能是在選擇某一條數(shù)據(jù)包后,在其中顯示此數(shù)據(jù)包的內容。關鍵在于將數(shù)據(jù)包內容轉換為字符串顯示,對于不可顯示字符有一個特定符號代替,這個功能由 showPacket函數(shù)實現(xiàn)。 TextArea 中顯示的結果如圖 13所示。 圖 13 JDTableTextArea顯示圖 ( 7) 為了更好地把統(tǒng)計結果顯示出來,作者在主界面中添加了“數(shù)據(jù)包統(tǒng)計”菜單,單 擊菜單中相應的層次的菜單項,就會彈出該層次數(shù)據(jù)包統(tǒng)計結果的窗口。 JDStatFrame 類就是其中一個實現(xiàn)統(tǒng)計結果顯示的類,它是一個抽象類。為了對統(tǒng)計結果利用圖表進行顯示,可以繪制折線圖、柱狀圖和餅圖等。因此在JDStatFrame 類中定義了實現(xiàn)統(tǒng)計結果窗口所需要的公用函數(shù)。 ( 8) JDCumlativeStatFrame 類實現(xiàn)了對結果餅圖的繪制,它將彈出一個窗口,將統(tǒng)計結果顯示在上面,利用自定義的 PieGraph 類對結果繪制餅狀圖,并且實現(xiàn)動態(tài)更新。作者 將 PieGraph類編寫成一個通用類,與網(wǎng)絡監(jiān)聽沒有太大的關系,因此這里不介紹 PieGraph類的實現(xiàn),可查看源文件“ ”。 統(tǒng)計顯示結果如圖 14所示。 圖 14 統(tǒng)計顯示圖 ( 9) JSourceDialog 類的功能是在進行指定對象監(jiān)聽的時候,彈出對話框,接受用戶輸入要指定對象的 IP 地址,并對輸入的地址進行正確性檢驗。使用DocumentListener 監(jiān)聽者的 insertUpdate 方法對輸入的字符進行監(jiān)視檢查,確保輸入的是 0到 9之間的數(shù) 字;在單擊確定按鈕后再次檢查,看看是否 4個十進制數(shù)都在 0到 255之間。若正確則將此地址轉換為字符串,然后再調用 analyzer 包中的分析類進行指定 IP 地址的分析。 輸入指定 IP 地址的顯示圖所圖 15所示。 圖 15 指定對象監(jiān)聽顯示圖 ui 包中 graph包的作用 此包中包含兩個類( ),這兩個類都是通用類,屬于 J2SESwing的界面編程技巧,與網(wǎng)絡監(jiān)聽沒有太大關系,在這只是調用 JAVA中這個方法來顯示餅狀圖和曲線圖,因此這里不再介紹,可 查看源程序文件。 外部類的設計 外部類在整個程序中的作用 到此,本設計已完成了分別用于分析,統(tǒng)計和界面的三個包“ analyzer”、“ stat”和“ ui”的介紹。整個程序是一個名為 JSniffer 的工程,所以所有的代碼都包含在“ JSniffer”包中。最后還需要直接在“ JSniffer”包添加幾個類,包括主類 JSniffer和實現(xiàn)截取數(shù)據(jù)包的類 JDCaptor 等,用于將各個部分結合起來,達到預期的實現(xiàn)效果。 外部各個類的作用與實現(xiàn)方式 ( 1) JDCaptor 類是整個程序的關鍵,它相當于一個數(shù)據(jù)包截獲器。 JDCaptor 類將每次監(jiān)聽分配到一個監(jiān)聽線程,對數(shù)據(jù)包的截取將通過在線程中調用 Jpcap類的 processPacket 函數(shù)來實現(xiàn),截取完后將數(shù)據(jù)包交給 JpcapHandler 對象 handler進行處理,包括指定對象監(jiān)聽的時候對數(shù)據(jù)包進行過濾和將數(shù)據(jù)包加入到向量中。 JDCaptor 類中的函數(shù)大部分都是對監(jiān)聽線程的操作,包括開啟線程、停止線程、暫時停止線程和繼續(xù)線程,并完成了對文件進行保存和打開的操作等等。 ( 2) JDPacketAnalyzerLoader 類是一個載入器。 JDPacketAnalyzerLoader 類將所有“ analyzer”包中定義的所有的協(xié)議解析類存儲到一個向量中,在截獲一個數(shù)據(jù)包后,利用此向量對數(shù)據(jù)包進行解析。 ( 3) JDStatisticTakerLoader 類也是一個載入器,同 JDPacketAnalyzerLoader 類類似, JDStatisticTakerLoader 類也類似,將“ stat”包中定義的數(shù)據(jù)包統(tǒng)計類 存儲到一個向量中,利用此向量進行統(tǒng)計。 ( 4) JSniffer 類是程序的主類,在此類中主函數(shù)通過調用函數(shù) openNewWindow啟動主界面。 openNewWindow 函數(shù)創(chuàng)建一個截獲器 JDCaptor 實例,然后作為參數(shù)傳遞給 JDFrame 類的構造函數(shù),創(chuàng)建一個主界面。為了支持多個界面同時運行,在類中定義一個 frame向量,每創(chuàng)建一個主界面就將其加入到向量中。當然JDCaptor 實例和 JDFrame 實例是一一對應的,即每個 JDFrame 實例獨立擁有一個 JDCaptor 實例。 6 測試與分析 測試的目的 軟件測試 是 軟件開發(fā) 過程的重要組成部分,是用來確認一個 程序 的品質 和 性能是否符合開發(fā)之前所提出的一些要求 , 是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。 本次 軟件測試的目的 : ( 1) 確認軟件的質量,其一方面是確認軟件 是否完成了開發(fā)人員期望的功能 ,另一方面是確認軟件 是否 以正確的方式 來完成這些功能的; ( 2) 提供信息, 讓開發(fā)人員知道該軟件需要進行哪些地方的完善, 比如提供給 開發(fā)人員的 反饋信息 。 對 軟件 測試的結果 由 以下 幾個方面來衡量的: ( 1)該軟件是否能 在正確的時間用正確的方法把一個工作做正確 ; ( 2) 符合一些應用標準的要求,比如 用戶的操作習慣、 界面的友好狀況等等; ( 3)軟件是否 達到了最開始所設定的要求 和代碼的規(guī)范程度。 測試的步驟 本軟件的測試過程按 4個步驟進行,即單元測試、集成測試、確認測試和系統(tǒng)測試。 ( 1)單元測試 單元測試是 緊接在編碼之后 的,是 集中對用源代碼實現(xiàn)的每一個程序單元進行測試,檢查各個程序模塊是否正確地實現(xiàn)了規(guī)定的功能。 單元測試任務包括: ① 模塊接口測試; ② 模塊局部數(shù)據(jù)結構測試; ③ 模塊邊界條件測試; ④ 模塊中所有獨立執(zhí)行通路測試; ⑤ 模塊的各條錯誤處理通路測試。 對 analyzer 和 stat包進行測試時 ,作者首先進行一個總體的測試, 在完全不考慮程序內部結構和特性的情況下,在程序接口進行測試,它只檢查程序功能是否按照需求規(guī)格 來運行 ,程序是否能適當?shù)亟邮蛰斎?數(shù)據(jù) 而產(chǎn)生正確的輸出信息 。 然后作者利用 Eclipse 中的 Java 調試功能, 通過 這種 測試來檢測 軟件 內部動作是否按照 要求 正常進行,檢驗程序中的每條通路是否都有能按預定要求正確工作,而不顧它的功能 。在測試程序的過程中設置不同斷點,并將程序處于運行狀態(tài),當運行到斷點時, Eclipse 等等,以次可以判斷程序是否是 按照作者預期的要求在運行,若發(fā)生錯誤或沒有按照要求運行,開發(fā)人員將對源代碼進行一定的修改后再進行調試,所以在編寫該軟件時,修改和調試操作是交替進行的。 而在對 ui 包進行測試時,和其它包的調
點擊復制文檔內容
研究報告相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1