Я работаю над анализатором пакетов, но у меня возникают проблемы с тем, как остановить поток (без устаревших методов), содержащий метод блокировки.
Этот метод относится к loop()
из библиотеки pcap4j.Поскольку это метод блокировки, я помещаю его в поток, чтобы основной работал.Однако, чтобы применить фильтр к интерфейсу pcap, мне нужно разорвать цикл и перезапустить его, поскольку функция breakloop()
библиотеки возвращает InterruptedException
.Поэтому моя идея заключалась в том, чтобы убить поток, содержащий метод.Но так как я не могу попасть в цикл библиотеки, вызывающий блокировку метода, я не могу сделать это, проверяя, прерывается ли поток или нет.
Thread t = new Thread(new Runnable() {
@Override
public void run() {
loop(args);
}
});
t.start();
Как я могу остановить его?
EDIT : Я перекомпилировал библиотеку из ее источника, удалив исключение InterruptedException из класса PcapHandle.