Я перехватываю пакеты с помощью библиотеки jpcap и сохраняю в базе данных Mysql. Я хочу сделать эти две функции отдельно. Моя программа захватывает пакет и сохраняет в базе данных, затем захватывает другой пакет и сохраняет в базе данных. Я хочу, чтобы один метод перехватывал пакеты, а другой метод сохранял их в базе данных. Сохранение пакета не останавливает захват для завершения процесса.
public class PacketSniffer {
private static String[] devices;
private static PacketCapture captor;
private static Packet info;
private static final Scanner input = new Scanner(System.in);
private static final String FILTER = "";
private static final int PACKET_COUNT = -1;
public PacketSniffer()
{
captor = new PacketCapture();
int i;
devices = PacketCapture.lookupDevices();
for(i=0; i<devices.length; i++)
{
System.out.println(i+": "+devices[i]); // +devices[i].name
System.out.println();
}
String device = input.nextLine();
captor.open(device, 65535, true, 0);
captor.setFilter(FILTER, true);
captor.addPacketListener(new PacketCapture());
captor.capture(PACKET_COUNT);
}
}
Обработчик пакетов для обработки перехваченных пакетов:
public class PacketHandler implements PacketListener {
Queue<Packet> queue;
@Override
public void packetArrived(Packet packet)
{
System.out.println(packet);
}
public void savePacket()
{
// Method to save packet in database
}
}