|
|
Packet
|
getPacket() 捕捉并返回一个数据包。这是JpcapCaptor实例中四种捕捉包的方法之一。
|
int
|
loopPacket(intcount, PacketReceiver handler) 捕捉指定数目的数据包,并交由实现了PacketReceiver接口的类的实例处理,并返回捕捉到的数据包数目。如果count参数设为-1,那么无限循环地捕捉数据。
这个方法不受超时的影响。还记得openDivice()中的to_ms参数么?那个参数对这个方法没有影响,如果没有捕捉到指定数目数据包,那么这个方法将一直阻塞等待。 PacketReceiver中只有一个抽象方法void receive(Packet p)。
|
int
|
processPacket(intcount, PacketReceiver handler) 跟loopPacket()功能一样,唯一的区别是这个方法受超时的影响,超过指定时间自动返回捕捉到数据包的数目。
|
int
|
dispatchPacket(intcount, PacketReceiverhandler) 跟processPacket()功能一样,区别是这个方法可以处于“non-blocking”模式工作,在这种模式下dispatchPacket()可能立即返回,即使没有捕捉到任何数据包。
|
void
|
setFilter(java.lang.Stringcondition, booleanoptimize) .condition:设定要提取的包的关键字。
Optimize:这个参数在说明文档以及源代码中都没有说明,只是说这个参数如果为真,那么过滤器将处于优化模式。
|
void
|
setNonBlockingMode(booleannonblocking)
如果值为“true”,那么设定为“non-blocking”模式。
|
void
|
breakLoop()
当调用processPacket()和loopPacket()后,再调用这个方法可以强制让processPacket()和loopPacket()停止。
|