?? captor.java
字號:
package cn.myownlife.www;
import java.io.IOException;
import jpcap.JpcapCaptor;
import jpcap.NetworkInterface;
import jpcap.PacketReceiver;
import jpcap.packet.Packet;
/*利用多線程實現抓包,每次抓一個*/
public class Captor {
static int len = 1024;//抓到的最大包長
static JpcapCaptor cap=null;
static NetworkInterface[] devices;//驅動
JpcapCaptor jpcap = null;
Jmain frame;
/**/
public void setJFrame(Jmain frame){
this.frame=frame;
}
/*打開適配器,開始抓包*/
public void capturePacketsFromDevice() throws IOException {
if(jpcap!=null)jpcap.close();
devices = JpcapCaptor.getDeviceList();
if(devices != null){
}
jpcap = JpcapCaptor.openDevice(devices[0], len, true, 1000);
if (jpcap != null) {
startCaptureThread();
}
}
private Thread captureThread;
/*開始抓包*/
private void startCaptureThread(){
if(captureThread != null)
return;
captureThread = new Thread(new Runnable(){
public void run(){
while(captureThread != null){
jpcap.processPacket(1, handler);
}
}
});
captureThread.setPriority(Thread.MIN_PRIORITY);
captureThread.start();
}
/*設置captureThread為NULL*/
void stopcaptureThread(){
captureThread = null;
}
/*停止抓包*/
public void stopCapture(){
System.out.println(2);
stopcaptureThread();
}
/*調用包的出來函數*/
private PacketReceiver handler=new PacketReceiver(){
public void receivePacket(Packet packet) {
frame.dealPacket(packet);
}
};
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -