中学生作文 语文教案 高考作文 文言文翻译 新课程改革 说课稿 诗歌散文欣赏 中考高考应考对策 语文教学论文之二 语文教学论文之三
语文教学论文之四 小学语文论文 小学语教案文 小学语文试题 小学生园地 文学欣赏 小学教师园地 小学语文课件 语文试题 数学试题
化学试题
物理试题 历史试题 政治试题 英语试题 生物试题 地理试题 其它教案 语文教案 数学教案 化学教案 物理教案
历史教案 政治教案 英语教案 生物教案 地理教案

HomeArticle        > 软件设计师(高程)      

> 在Java中用Jpcap捕获网络包


  文章内容
 

在Java中用Jpcap捕获网络包


 
 

   如果你想捕获Java程序中的网络包,那么你需要一些辅助工具,因为核心Java API不能访问底层的网络数据。但Jpcap是一种提供在Windows或UNIX系统上进行这种访问的Java API。

Jpcap不是一种纯粹的Java解决方案;它依赖本地库的使用。在Windows 或 UNIX上,你必须有必要的第三方库,分别是WinPcap或libpcap。

Jpcap的工作原理

Jpcap使用一个事件模型来让你处理包。首先你必须创建一个执行接口jpcap.JpcapHandler的类。

public class JpcapTip implements JpcapHandler {
public void handlePacket(Packet packet){
System.out.println(packet);
}
}

为了捕获包,你需要告诉Jpcap你想用哪个网络设备来监听。API提供了jpcap.Jpcap.getDeviceList()方法以满足这一目的。这个方法返回一列字符串,你可以象如下使用它:

String[] devices = Jpcap.getDeviceList();



一旦你有了一个设备名称的目录,你必须选取一个用来监听:

String deviceName = devices[0];



选择一个设备之后,通过Jpcap.openDevice()方法打开它。openDevice()方法需要四个参数:即将打开的设备名,从设备上一次读取的最大字节数,说明是否将设备设为混杂模式的Boolean值,和以后调用processPacket()方法要使用到的超时值。

Jpcapjpcap = Jpcap.openDevice(deviceName, 1028, false, 10000);



openDevice()方法将一个参数返回到用以捕获的Jpcap对象。既然有了Jpcap实例,你可以调用processPacket() 或loopPacket()开始监听了。这两种方式都带有两个参数:捕获的最大包数可以是-1(说明没有限制);执行JpcapHandler的一个类的实例。



如果你调用processPacket(),那么Jpcap将一直捕获包,直到超过openDevice中规定的时限或达到了规定的最大包数。loopPacket()则将一直捕获包,直到达到最大包数,如果没有最大数限制,它将永远运行下去。就像下面这样调用:

jpcap.loopPacket(-1, new JpcapTip());


 

State

学科试题测试
教学知识小品
教学心得随笔之一
教育教学论文
教学设计教案
教学心得随笔之二
教学心得随笔之三
工科论文
管理学论文
公共管理论文
经济学论文
法律论文
政治学论文
会计审计论文
艺术论文
其它类论文
证券金融论文
论文指导
财政税收论文
工商管理论文
财务管理论文
计算机论文
医学论文
哲学论文
教育论文
少儿英语
综合英语
考研&MBA
国内考试
企业法律顾问
小语种
出国考试
学习顾问
IT培训
管理培训
商务英语
会计考试
英语考试
司法考试
英语口语
导游员考试
自学考试
公务员考试
报关员考试
CET考试综合信息
CET四级考试
CET六级考试
PETS考试
等级考试综合信息
计算机等级一级考试
计算机等级二级考试
计算机等级三级考试
计算机等级四级考试
全国计算机NIT考试
软考试综合信息
数据库系统工程师
网络管理(程序)员
程序员级
网络设计师
软件设计师(高程)
系统分析师
 


Copyright www.schoolscn.com All rights reserved. ICP备05047758号