Jpcap ! [RESOLVIDO]

3 respostas
pedroroxd

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:
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){
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?

3 Respostas

pedroroxd

Alguém sabe o que pode ser?

ViniGodoy

Será que quando não há dados, p.nada não é igual a null?

pedroroxd

AHUUhHUAhua
não acredito que não pensei nisso…

NAss…
É isso mesmo! xD

if(p!=null && p.data.length > 0){
Criado 14 de dezembro de 2010
Ultima resposta 15 de dez. de 2010
Respostas 3
Participantes 2