1 / 13
文档名称:

计算机网络课程设计报告实验报告.doc

格式:doc   大小:59KB   页数:13页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

计算机网络课程设计报告实验报告.doc

上传人:2786321826 2022/1/26 文件大小:59 KB

下载得到文件列表

计算机网络课程设计报告实验报告.doc

文档介绍

文档介绍:-
. z
中南大学课程设计报告
课程:计算机网络课程设计
题目:基于Winpcap的网络流量统计分析
指导教0),通过在arg0传入已在jnetpcap里封装好的包的类型的实例,可以很好的判断该包是属于什么包类型的,是TCP、UPD、ICMP、ARP还是播送数据包。
然后部对于各种包的信息的输出也有很好的支持,可以直接使用相应的toString方法,就可以输出各种相关信息。
网络流量统计
对于各个捕获到的包,分别针对各种类型的包设计了一个Double变量用于统计其传送过来相应的大小,并在停顿抓包后将统计的数据输出在最下方的Te*tArea里面。
界面实现
本程序在设计GUI时使用了Java的一个很好的插件WindowBuilder。
〔1〕布局
-
. z
一开场使用Border Layout布局,安排好各个按钮位置,文本框位置。后来采用Absolute layout,并将窗口大小固定化。
在布局的最上方是一个JToolBar的实例对象,其中放置有选择网卡、开场抓包、停顿抓包、清空记录等四个选项,中间是两个带滚动条的多行文本框,左边的用于显示捕获的包的列表,右边用于显示左边的我们选中的包的具体信息。最下方会在停顿抓包按钮生效后输出总的抓包情况。
按钮功能连接
在布局的最上方是一个JToolBar的实例对象,其中放置有选择网卡、开场抓包、停顿抓包、清空记录等四个选项,其中选择网卡的功能具体由oBo*〔多文本选择框〕上的选项决定,这个多文本选择框监听着 网卡获取的方法,它会从该方法获得一个网卡列表,然后将其文本输出。
开场抓包的方法所对应的事件是抓包的事件,并且该抓包事件是个并发的进程。因为如果不将其设置为并发进程,其会使其它事件一直阻塞,甚至连停顿抓包都做不到。停顿抓包的事件其实是改变了开场抓包中的一个标志位,让其为假。该标志为为真,抓包程序会一直进展,该标志为为假,抓包停顿。
下方两个文本框,左边的文本框监听的是开场抓包这个事件,当这个事件开场,这个事件会向文本框传输捕获到的包的列表,然后让其显示。而右边的文本框监听的是左边文本框我们选中的容的相应事件。因为对于我们捕获到的包我进展了编号,当我们在左边的文本框选中了一个包之后,左边的文本框对应的包的序号会被右边的文本框获取,用于在一个列表中根据序号查找到相对应的包的详细容,然后将其输出。
统计功能的实现是在每个包的具体处理时,在处理包的方法类中已经有定义好几个静态变量用于计数,每个包具体处理时,将相对应的包类型数量加一即可。还定义了其它的变量用于统计流量大小,也是在每个包具体处理时,将相对应的包的大小加到相对应的静态变量上即可。
源代码清单及说明

//该类负责网卡列表的获取、包的捕获、抓包程序的停顿
package util;
import ;
import java*.;
import ;
import ;
import ;
publicclass CaptureUtil e*tends Thread{
privatestaticbooleanflag=true;
publicstaticintnumber=2;
privatestatic StringBuilder errbuf = new StringBuilder(); // 用于存储任何错误信息
//此方法用于获取设备上的网卡设施
publicstatic ArrayList<PcapIf> CaptureNet(){
=false;
-
. z
//下面有局部代码来自jnetpcap官网的实例
ArrayList<PcapIf> alldevs = new ArrayList<PcapIf>(); // 用于存储搜索到的网卡
//取得设备列表
intr = (alldevs, errbuf);
if (r == || ()) {
JO