【免费毕设】JAVA监听系统的设计与开发(源代码+论文)


目录

在这里插入图片描述

一、系统设计

4.1 设计框架图
经过对Winpcap和Jpcap的了解,知道了如何截获数据包并进行处理,现在就要编写代码,将这些步骤嵌入到一个框架中,将数据包的处理结果显示出来,根据本软件所要实现的功能,本设计所需要实现的类结构如图5所示。
在这里插入图片描述
4.2 设计步骤
4.2.1 整体规划
现在对程序进行如下设计:

(1)使用Eclipse 3.2开发的基于J2SESwing的图形用户界面程序;

(2)允许多个窗口同时运行,因此用向量来存储已创建的窗口。为了使各个窗口间的监听不相互干扰,因此为每一个监听过程都开辟一个新的线程,在线程中完成从截获数据包到分析数据包到最后将结果显示出来的全部过程。

(3)将所有截获的数据包用向量存储,当然定义了数量上限。预计监听结果的显示如下:使用JTable组件显示每条分析完后的数据包,并进行动态更的新;若选中表格中的某一条记录时,则在JTree组件中将它所具有的全部协议显示出来,父结点为协议名,子结点为协议字段名,叶子结点为字段取值,同时将数据包的内容转换为字符串显示在JTextArea组件中。

4.2.2 程序运行流程
(1)程序的开始

程序主类为JSniffer,整个程序由此类中的main()函数进入,进行初始化,出现主界面,即JDFrame类的实例,然后等待主界面中的事件响应。

(2)准备监听

当主界面中执行开始监听事件时,创建JDCaptor类实例,这个类实际上就是数据包截获器。JDCaptor类首先调用JDCaptureDialog类,这是一个选择设备对话框,在JDCaptureDialog中使用Jpcap.getDeviceList()和Jpcap.getDeviceDescription()获取设备,根据界面选择设备,然后使用openDevice函数打开设备,返回Jpcap对象给调用它的JDCaptor实体。

(3)截获数据包

JDCaptor类开启一条线程,用来进行截获数据包处理。在此线程中使用刚才得到的Jpcap对象的processPacket()函数截获数据包。

(4)分析数据包

使用Jpcap类的包处理接口JpcapHandler handlePacket()进行截获的数据包的初步处理,每截获一个数据包都放入数据包向量packets中,则packets中存放的就是一次监听过程中所监听到的所有数据包。然后将packets传递给analyzer包中的所有类,即每截获一个数据包,就用所有已经定义的协议进行分析。

(5)分析结果显示

使用JTable控件来显示截获的数据包进过分析后的信息,每分析完一条,显示一条,至于显示哪些信息,由菜单中的“协议查看”下面的选项来决定。当执行选择table中某一行的事件时,用tree控件来显示此数据包对应于各层的协议,并用textarea控件将此数据包的内容转换为字符串完整的显示。

(6)流量统计

使用向量来存储每一个协议的所有的数据包,每分析完一个数据包后,在它所包含的协议的向量中加一。然后绘制每一层协议的饼状图,饼状图动态更新。

(7)数据更新

使用Timer类的start(),setRepeats()来进行动态更新,并通过此类中的事件响应来进行更新时的操作,即提示表格更新。

(8)指定对象监听

指定对象监听就是使用JSourceDialog来得到指定监听的主机的IP地址,监听内容是源IP为指定IP的数据包,如果符合条件则处理,不符合则丢弃。这个过滤处理在分析数据包JpcapHandler handlePacket()中完成。

二、系统实现

5.1使用Eclipse 3.2创建项目
5.1.1 创建项目
使用Eclipse3.2创建JSniffer工程。单击“文件->新建->项目”,在弹出的“新建项目”对话框中选择Java项目,在项目名中填写项目名为“JSniffer”,如图6所示。在这里插入图片描述
5.1.2 创建包
在项目“JSniffer”上单击右键,选择“新建->包”,在弹出的“新建Java包”对话框中填写包名为“analyzer”,在以后的编写过程中,还需创建“stat”、“ui”、“graph”包,在这就不依依介绍了,创建过程类同“analyzer”包的创建,如图7所示。在这里插入图片描述
5.1.3 创建类
在包“analyzer”上单击右键,选择“新建->类”,在弹出的“新建Java类”对话框中填写类名称,如图8所示。

在这里插入图片描述

源文件

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值