cccaptor.java

来自「用javaJPcapWinpcap协议分析」· Java 代码 · 共 84 行

JAVA
84
字号
package ccsniffer;

import java.io.File;
import java.util.Vector;

import javax.swing.JFileChooser;
import javax.swing.JOptionPane;

import jpcap.JpcapCaptor;
import jpcap.PacketReceiver;
import jpcap.JpcapWriter;
import jpcap.packet.Packet;

import ccsniffer.*;
import ccsniffer.ui.*;


public class CCCaptor {
	
	JpcapCaptor jpcap=null;
	JCCFrame frame;

	public void setJCCFrame(JCCFrame frame){
		this.frame=frame;
	}


	public void capturePacketsFromDevice() {

		if(jpcap!=null)
			jpcap.close();
			
		jpcap = JCCCaptureDialog.getJpcap(frame);
		
		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();

	}

	void stopCaptureThread(){
		captureThread = null;
	}
	public void stopCapture() {
		System.out.println(2);
		stopCaptureThread();
	}


	private PacketReceiver handler=new PacketReceiver(){
		public void receivePacket(Packet packet) {
			//System.out.println(packet);
			frame.dealPacket(packet);
		}
		
	};

	public static void main( String args[] )
	{
		new CCCaptor().capturePacketsFromDevice();
	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?