JNetPacp每隔两次就可以工作

时间:2019-10-30 07:51:00

标签: java jnetpcap

我正在使用以下非常简单的JNetPacp代码。但是,该代码每隔一次“起作用”。

        System.out.println("ANALYZING: " + this.pcapFilename);
        StringBuilder errbuf = new StringBuilder();
        Pcap pcap = Pcap.openOffline(this.pcapFilename, errbuf);

        if (pcap == null) {
            throw new IOException(errbuf.toString());
        }

        System.out.println(pcap.toString());
        JPacketHandler<StringBuilder> packetHandler = new JPacketHandler<StringBuilder>() {
            final Tcp tcp = new Tcp();
            final Http http = new Http();

            @Override
            public void nextPacket(JPacket packet, StringBuilder user) {
                System.out.println("Next Packet");    
            }
        };
        pcap.loop(-1, packetHandler, errbuf);
        pcap.close();
        System.out.println("Error Buffer: " + errbuf.toString());

我总是分析相同的PCAP文件(tmp.pcap)。有时它会正确读取受限制的程序包:

run:
ANALYZING: H:\tmp.pcap
WinPcap version 4.1.3 (packet.dll version 4.1.0.2980), based on libpcap version 1.0 branch 1_0_rel0b (20091008)
Next Packet
Next Packet
Next Packet
Next Packet
*[...]*
Next Packet
Next Packet
Next Packet
Next Packet
Next Packet
Error Buffer: 
BUILD SUCCESSFUL (total time: 3 seconds)

有时不这样做:

run:
ANALYZING: H:\tmp.pcap
WinPcap version 4.1.3 (packet.dll version 4.1.0.2980), based on libpcap version 1.0 branch 1_0_rel0b (20091008)
Error Buffer: 
BUILD SUCCESSFUL (total time: 0 seconds)

我不知道自己在想什么。

感谢您的帮助。

0 个答案:

没有答案