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

正文內(nèi)容

局域網(wǎng)監(jiān)聽軟件的設計與開發(fā)—免費(參考版)

2024-12-11 09:13本頁面
  

【正文】 而在對 ui 包進行測試時,和其它包的調(diào)。 然后作者利用 Eclipse 中的 Java 調(diào)試功能, 通過 這種 測試來檢測 軟件 內(nèi)部動作是否按照 要求 正常進行,檢驗程序中的每條通路是否都有能按預定要求正確工作,而不顧它的功能 。 單元測試任務包括: ① 模塊接口測試; ② 模塊局部數(shù)據(jù)結(jié)構測試; ③ 模塊邊界條件測試; ④ 模塊中所有獨立執(zhí)行通路測試; ⑤ 模塊的各條錯誤處理通路測試。 測試的步驟 本軟件的測試過程按 4個步驟進行,即單元測試、集成測試、確認測試和系統(tǒng)測試。 本次 軟件測試的目的 : ( 1) 確認軟件的質(zhì)量,其一方面是確認軟件 是否完成了開發(fā)人員期望的功能 ,另一方面是確認軟件 是否 以正確的方式 來完成這些功能的; ( 2) 提供信息, 讓開發(fā)人員知道該軟件需要進行哪些地方的完善, 比如提供給 開發(fā)人員的 反饋信息 。當然JDCaptor 實例和 JDFrame 實例是一一對應的,即每個 JDFrame 實例獨立擁有一個 JDCaptor 實例。 openNewWindow 函數(shù)創(chuàng)建一個截獲器 JDCaptor 實例,然后作為參數(shù)傳遞給 JDFrame 類的構造函數(shù),創(chuàng)建一個主界面。 ( 3) JDStatisticTakerLoader 類也是一個載入器,同 JDPacketAnalyzerLoader 類類似, JDStatisticTakerLoader 類也類似,將“ stat”包中定義的數(shù)據(jù)包統(tǒng)計類 存儲到一個向量中,利用此向量進行統(tǒng)計。 ( 2) JDPacketAnalyzerLoader 類是一個載入器。 JDCaptor 類將每次監(jiān)聽分配到一個監(jiān)聽線程,對數(shù)據(jù)包的截取將通過在線程中調(diào)用 Jpcap類的 processPacket 函數(shù)來實現(xiàn),截取完后將數(shù)據(jù)包交給 JpcapHandler 對象 handler進行處理,包括指定對象監(jiān)聽的時候?qū)?shù)據(jù)包進行過濾和將數(shù)據(jù)包加入到向量中。最后還需要直接在“ JSniffer”包添加幾個類,包括主類 JSniffer和實現(xiàn)截取數(shù)據(jù)包的類 JDCaptor 等,用于將各個部分結(jié)合起來,達到預期的實現(xiàn)效果。 外部類的設計 外部類在整個程序中的作用 到此,本設計已完成了分別用于分析,統(tǒng)計和界面的三個包“ analyzer”、“ stat”和“ ui”的介紹。 輸入指定 IP 地址的顯示圖所圖 15所示。使用DocumentListener 監(jiān)聽者的 insertUpdate 方法對輸入的字符進行監(jiān)視檢查,確保輸入的是 0到 9之間的數(shù) 字;在單擊確定按鈕后再次檢查,看看是否 4個十進制數(shù)都在 0到 255之間。 統(tǒng)計顯示結(jié)果如圖 14所示。 ( 8) JDCumlativeStatFrame 類實現(xiàn)了對結(jié)果餅圖的繪制,它將彈出一個窗口,將統(tǒng)計結(jié)果顯示在上面,利用自定義的 PieGraph 類對結(jié)果繪制餅狀圖,并且實現(xiàn)動態(tài)更新。為了對統(tǒng)計結(jié)果利用圖表進行顯示,可以繪制折線圖、柱狀圖和餅圖等。 圖 13 JDTableTextArea顯示圖 ( 7) 為了更好地把統(tǒng)計結(jié)果顯示出來,作者在主界面中添加了“數(shù)據(jù)包統(tǒng)計”菜單,單 擊菜單中相應的層次的菜單項,就會彈出該層次數(shù)據(jù)包統(tǒng)計結(jié)果的窗口。關鍵在于將數(shù)據(jù)包內(nèi)容轉(zhuǎn)換為字符串顯示,對于不可顯示字符有一個特定符號代替,這個功能由 showPacket函數(shù)實現(xiàn)。 addNode和 addNodes 兩個函數(shù)都是用于添加新的結(jié)點,樹中顯示的結(jié)果如圖 12所示。 顯示截獲數(shù)據(jù)包解析后的結(jié)果如圖 11 所示: 圖 11 JDTable顯示圖 ( 5) JDTableTree 類的功能是在選擇某一個數(shù)據(jù)包后,將該數(shù)據(jù)包具有的所有協(xié)議內(nèi)容組成一棵樹,父結(jié)點是協(xié)議名,子結(jié)點是協(xié)議具有的字段名,葉子是字段取值。同時在此類中定義了 TableView 類用來表 示表格顯示的結(jié)構; JDTableModel 類是一種模式,在其中定義了對表格的一些常見操作,而 JDTable 便是 JDTableModel 模式下的表格。 ( 4) JDTable 類用來實現(xiàn)顯示截獲數(shù)據(jù)包解析后的結(jié)果,位于 JDTablePane 布局中的上方。 圖 10 選擇設備對話框 ( 3) JDTablePane類主要功能是對 JTable、 JTree、 JTextArea三個組件進行布局,這里用的是 JSplitPane布局,即進行分割布局 ( JSplitPane 用于分隔兩個 只能兩個 Component) ;同時在 JDTablePane類中還完成了協(xié)議查看菜單的設置和事件響應。單擊確定后,通過調(diào)用 Jpcap 的 openDevice函數(shù)來打開設備。 JDCaptureDialog 類利用 Jpcap 包的getDeviceList 函數(shù)和 getDeviceDescription 函數(shù)來獲取本機上可進行監(jiān)聽的所有的網(wǎng)絡設備。 ( 2) JDCaptureDialog 類的作用是選擇設備和設置設備模式,也是進行網(wǎng)絡監(jiān)聽的關鍵一步。 每一部分所使用的組件以及所屬的類如表 4所示。 Ui 包中的所有類主要實現(xiàn)該程序的界面排版,將實現(xiàn)程序界面的所有的類封裝在“ ui”包中。 ( 4) 此類是傳輸層的數(shù)據(jù)包統(tǒng)計類,與網(wǎ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 統(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 包的設計 stat 包的作用 Stat 的作用是完成對所截獲的數(shù)據(jù)包按照不同的協(xié)議,不同的層次 進行統(tǒng)計,并進行動態(tài)的更新,最后將其結(jié)果顯示出來。 ( 8) UDP 報文段 分為數(shù)據(jù)字段和首部字段,首字段只有 8 個字節(jié),由 4 個字段組成,每個字段 2 字節(jié) ,各字段為: 源端口(源端口號)、目的端口(目的端口號)、長度( UDP用戶數(shù)據(jù)報的長度)、檢驗和(防止 UDP 用戶數(shù)據(jù)報在傳輸中出錯) 。具體字段作用可參考相應源文件。 TCP協(xié)議 是面向連接的,而 UDP是無連接的 。 此類用于對屬于 ICMP協(xié)議的數(shù)據(jù)進行逐步分析,并得到各字段的數(shù)據(jù),使用的方法和其他解析類類似,在此不再重復,可參考相應源程序文件。 ( 6) ICMP( Inter Control Message Protocol) Inter控制報文協(xié)議,傳遞差錯報文以及其他需要注意的信息,種類有兩種: ICMP差錯報告報文和 ICMP詢問報文, ICMP報文是在 IP 數(shù)據(jù)報內(nèi)部被 傳輸?shù)模?4個字節(jié)是統(tǒng)一的:類型,代碼,檢驗和;接著 4個字節(jié)的內(nèi)容與 ICMP的類型有關;再后面是數(shù)據(jù)字段,其長度取決于 ICMP的類型。 ( 5) 此類用于對 ARP(Address Resolution Protocol)地址解析協(xié)議 和 RARP(Reverse Address Resolution Protocol)逆地址解析協(xié)議 層的數(shù)據(jù)進行分析, ARP 是工作在IP 層與數(shù)據(jù)鏈路層之間的一個橋梁,起的作用是查詢給定的 IP 地址所對應的網(wǎng)卡物理地址 (MAC地址 )。所謂 流 就是互聯(lián)網(wǎng)上從特定源點到特定終點(單播或多播)的一系列數(shù)據(jù)報(如實時音頻或視頻傳輸),而在這個 流 所經(jīng)過的路徑上的路由器都保證指明的服務質(zhì)量,所有屬于同一個流的數(shù)據(jù)報都具有同樣的流標號 。 ( 4) IPv6將地址從 IPv4的 32bit增大到了 128bit,首部長度固定為 40字節(jié) , IPv6的 一個新的機制 是 支持資源預分配,并且允許路由 器將每一個數(shù)據(jù)報與一個給定的資源分配相聯(lián)系。 ( 3) 此類的功能為解析 IPv4 協(xié)議數(shù)據(jù)包,為相應字段賦值。 表 2 協(xié)議與類的對應關系 TCP/IP 體系層次 協(xié) 議 名 數(shù)據(jù)包解析類名 主機網(wǎng)絡層 Ether Frame EtherAnalyzer 互聯(lián)層 IPv4 IPv4Analyer IPv6 IPv6Analyzer ARP ARPAnalyzer ICMP ICMPAnalyzer 傳輸層 TCP TCPAnalyzer UDP UDPAnalyzer 應用層 HTTP HTTPAnalyzer 返回類 顯示數(shù)據(jù)包被截獲相關信息 PacketAnalyzer analyzer包中各個類的作用與實現(xiàn)方式 在 analyzer 包中,針對不同的 TCP/IP 層次,編寫不同的分析類,每一個類中都將每一協(xié)議的重要字段都進行定義,并將進行逐步分析,得到每一字段的數(shù)據(jù)值,下面將介紹在這個包中每個類的作用和編寫思路: ( 1) 這是一個抽象類,其功能主要有兩個,定義靜態(tài)常量用來表示 TCP/IP 體系中的各層次,然后定義不同協(xié)議數(shù)據(jù)包分析類中的公用函數(shù), 定義每一個協(xié)議層,并定義一些方法, 是 所有分析類的父類 。 在本程序中預計對 8個協(xié)議進行解析,為此需要定義 8個解析類再加上一個用于返回截獲數(shù)據(jù)包信息(如截獲時間,大小等)的類。 圖 7 創(chuàng)建包對話框 創(chuàng)建類 在包“ analyzer”上單擊右鍵,選擇“新建 類”,在彈出的“新建 Java類”對話框中填寫類名稱,如圖 8所示。單擊“ 文件 新建 項目”,在彈出的“新建項目 ”對話框中選擇 Java 項目,在項目名中填寫項目名為“ JSniffer”,如圖 6所示。這個過濾處理在分析數(shù)據(jù)包 JpcapHandler handlePacket()中完成。 ( 7)數(shù)據(jù)更新 使用 Timer 類的 start(), setRepeats()來進行動態(tài)更新,并通過此類中的事件響應來進行更新時的操作,即提示表格更新。 ( 6)流量統(tǒng)計 使用向量來存儲每一個協(xié)議的所有的數(shù)據(jù)包,每分析完一個數(shù)據(jù)包后,在它所包含的協(xié)議的向量中加一。 ( 5)分析結(jié)果顯示 使用 JTable控件來顯示截獲的數(shù)據(jù)包進過分析后的信息,每分析完一條,顯示一條,至于顯示哪些信息,由菜單中的“協(xié)議查看”下面的選項來決定。 ( 4)分析數(shù)據(jù)包 使用 Jpcap類的包處理接口 JpcapHandler handlePacket()進行截獲的數(shù)據(jù)包的初步處理,每截獲一個數(shù)據(jù)包都放入數(shù)據(jù)包向量 packets 中,則 packets 中存放的就是一次監(jiān)聽過程中所監(jiān)聽到的所有數(shù)據(jù)包。 ( 3)截獲數(shù)據(jù)包 JDCaptor 類開啟一條線程,用來進行截獲數(shù)據(jù)包處理。 ( 2)準備監(jiān)聽 當主界面中執(zhí)行開始監(jiān)聽事件時,創(chuàng)建 JDCaptor 類實例,這個類實際上就是數(shù)據(jù)包截獲器。預計監(jiān)聽結(jié)果的顯示如下:使用 JTable組件顯示每條分析完后的數(shù)據(jù)包,并進行動態(tài)更的新;若選中表格中的某一條記錄時,則在 JTree組件中將它所具有的全部協(xié)議顯示出來,父結(jié)點為協(xié)議名,子結(jié)點為協(xié)議字段名,葉子結(jié)點為字段取值,同時將數(shù)據(jù)包的內(nèi)容轉(zhuǎn)換為字符串顯示在 JTextArea 組件中。為了使各個窗口間的監(jiān)聽不相互干擾,因此為每一個監(jiān)聽過程都開辟一個新的線程,在線程中完成從截 獲數(shù)據(jù)包到分析數(shù)據(jù)包到最后將結(jié)果顯示出來的全部過程。 4 設計思路 設計框架圖 經(jīng)過對 Winpcap和 Jpcap的了解,知道了如何截獲數(shù)據(jù)包并進行處理,現(xiàn)在就要編寫代碼,將這些步驟嵌入到一個框架中, 將數(shù)據(jù)包的處理結(jié)果顯示出來,根據(jù)本軟件所要實現(xiàn)的功能,本設計所需要實現(xiàn)的類結(jié)構如圖 5所示。在 Windows上,如果 在庫地址目錄中, Java命令如下: java =lib cp lib\。就像下面這樣調(diào)用: (1, new JpcapTip())。這兩種方式都帶有兩個參數(shù):捕獲的最大包數(shù)可以是 ?1(說明沒有限制);執(zhí)行 JpcapHandler 的一個類的實例。 openDevice()方法將一個參數(shù)返回到用以捕獲的 Jpcap對象。 o
點擊復制文檔內(nèi)容
研究報告相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1