Jpcap包的学习笔记(五)如何使用JpcapCaptor实例来捕捉网络数据包(上部)
来源:互联网 发布:软件快捷方式怎么恢复 编辑:程序博客网 时间:2024/05/20 17:23
如何使用JpcapCaptor实例来捕捉网络数据包
当你通过打开网卡设备得到JpcapCaptor实例后,就可以利用它来捕捉网络数据包了。你可以利用以下两种方法来捕捉网络数据包。第一种是通过回调函数的机制,另一种是利用JpcapCaptor实例的getPacket()的方法,一个数据包一个数据包的接收。第一种是类似与事件触发的机制。
方法一:回调函数机制。
首先,你要自定义一个类,该类必顺实现PacketReceiver接口,(在事件处理机制雷同)。PacketReciver接口只声名了receivePacket(Packet packet) 方法,所以你要在你自义的类中实现该方法,方法体里放置你处理接收到的数据包的代码,得到的数据包为型参packet.
接着,你就可以通过调用JpcapCaptor类的实例的processPacket()或loopPacket()来开始接收数据包。开始接收数据包后,当接收到数据包时就会回调实现PacketReceiver接口的类的receivePacket的方法,使理接收到的数据包。
public int processPacket(int n , PacketRecevier handler);
参数1 类型 int 解释:一次接收包的个数(个数到时到产生回调)
参数2 类型 PacketRecevier 解释:(回调者)事件临听者
返回值:捕捉到的数据包的个数
功能:捕捉自定义个数的网络数据包。与loopPacket()方法不同,当接收超时(这个由前面的openDevice()方法的最后一个接收超时参数所决定)该方法立即返回。同样的在非阻塞模式下是,没有数据所可接收,该方法也立即返回。
public int loopPacket(int n, PacketRecevier handler):
参数1 类型 int 解释:一次接收包的个数(个数到时到产生回调)
如下为一个简单的demo:
/** * @(#)GetPacketDemo.java * * 演示利用回调机制来捕捉网络数据包 * @author scholar_ii * @version 1.00 2007/12/17 */import jpcap.*;import jpcap.packet.*;public class GetPacketDemo { public static void main(String [] args) throws Exception { NetworkInterface[] devices = JpcapCaptor.getDeviceList(); int index = 0; if(devices.length>1)/*去掉虚拟网卡的处理*/ index = 1; JpcapCaptor captor = JpcapCaptor.openDevice(devices[index], 65535, false, 20); captor.loopPacket(-1, new Receiver()); }}class Receiver implements PacketReceiver{ /*实例receivePacket方法*/ public void receivePacket(Packet packet) { /*进行简单的处理*/ System.out.println(packet); }}
参数2 类型 PacketRecevier 解释:(回调者)事件临听者
返回值:捕捉到的数据包的个数
功能:捉自定义个数的网络数据包。与processPacket()方法不同,该方法忽视超时,不支持工作在非阻塞模式。
注意:在这两个方法的第一个参数中,你可以设定其值为-1。这时你可以停的捕捉数据包,直到捕捉结束,或错误发生为止。
- Jpcap包的学习笔记(五)如何使用JpcapCaptor实例来捕捉网络数据包(上部)
- 实战:使用JpcapCaptor实例来捕捉网络数据包(一)
- Jpcap包的学习笔记(八)如何使用Jpcap 包实现网络监听(下部)
- Jpcap JAVA捕捉并分析网络数据包
- JPCAP:使用Java来sniffer网络数据包(包含例子程序)
- JPCAP:使用Java来sniffer网络数据包(包含例子程序)
- 如何使用Jpcap 包实现网络监听
- Jpcap包的学习笔记(二)Jpcap的功能简介
- Jpcap包的学习笔记(三)获取网络接口设备[网卡设备]
- Jpcap包的学习笔记(四)打开网络接口设备[网卡设备]
- 使用pcap捕捉网络数据包
- 网络数据包捕捉工具jNetPcap学习笔记(一)
- Jpcap包的学习笔记(一)入门笔记
- jpcap网络抓包
- 【JavaSE】网络编程 Jpcap的使用
- 使用Jpcap进行java平台下的ipv6网络抓包
- 安装配置Jpcap,使用jpcap抓包
- Jpcap学习笔记0--Jpcap帮助文档
- SOA架构必备知识
- 最值得珍藏的420个生活小窍门
- 一些SOA的常见问题
- 上传图片前的预览
- 一种简单、快速、高效的多边形减面算法
- Jpcap包的学习笔记(五)如何使用JpcapCaptor实例来捕捉网络数据包(上部)
- 使用FileUpload组件上传文件
- 项目管理网址
- 十大负面测试用例
- 学习中的一点点感受
- Div+CSS布局入门教程--写入整体层结构与CSS
- 一辈子的回忆(超好笑,强力推荐)
- 国务院公布年节及纪念日放假办法(全文)
- 学C++时的一些浅浅的疑问!