Pessoal, fiz um programa aqui para verificar o tráfego na rede e tal…
Só que todos os exemplos que achava de Jpcap na internet, era setado para capturar somente “x” pacotes…
Mas eu não quero “x” pacotes, eu quero estar capturando SEMPRE…
Mas tem 1 condição… O pacote tem que ter “data”.
Ae fiz assim:
[code] NetworkInterface[] interfaces = JpcapCaptor.getDeviceList();
JpcapCaptor captor = JpcapCaptor.openDevice(interfaces[1], 65535, false, 20000);
captor.setFilter("tcp", true);
while(true){ // PEGANDO SEMPRE PACOTES
TCPPacket p = (TCPPacket) captor.getPacket();
if(p.data.length > 0){[/code]
Bom, meu programa roda joinha…
Mas tem vez que dá um erro na linha
if(p.data.length > 0)
Dá esse error: [color=red]Exception in thread “main” java.lang.NullPointerException[/color]
Esse error pode aparecer com alguns segundos do programa rodando, ou uns 3-4 minutos…
O estranho é que é uma operação simples (verifica se é maior que 0), por que então dá erro?
APARENTEMENTE o erro dá quando esgota os (interfaces[1], 65535, false, 20000); 20000 milisegundos sem receber NENHUM pacote…
Para que serve esse “20000” ?
Tem como setar para continuar capturarando, mesmo que passe mt tempo sem capturar?