尝试使用jpcap读取数据包时出现异常(java.lang.InstantiationException)

时间:2013-10-07 01:01:02

标签: java network-programming udp wireshark jpcap

我正在尝试使用多播发送udp数据包并使用jpcap接收它们。 多播代码工作,当我用wireshark嗅探时,我收到了我想要的所有数据包。但是我的jpcap代码不起作用,我得到了这个例外:

Exception in thread "main" java.lang.InstantiationException: jpcap.packet.DatalinkPacket
    at jpcap.JpcapCaptor.getPacket(Native Method)
    at Receiver.Receiver.main(Receiver.java:54)

这是我的代码:

    NetworkInterface[] devices = JpcapCaptor.getDeviceList();

    int index = 0;

    JpcapCaptor captor=JpcapCaptor.openDevice(devices[index], 60000, true, 20);
    //captor.setFilter("udp", true);

    for(int i=0;i<1000;i++){
          //capture a single packet and print it out
          Packet pac = captor.getPacket();
          System.out.println(pac);        


        }

网络接口在wireshark中运行良好。 当我在没有captor.setFilter()的情况下运行代码时,我得到了异常。有时我会在异常之前得到1-2次“null”,所以似乎有几个数据包让我的程序崩溃(例如beacon)。当我设置一个过滤器,比如“udp”时,我没有异常,但每次都是“null”,因为没有捕获数据包。

我的网络接口是一个在监控模式下运行的Wifi适配器,因此可以捕获它收到的所有数据包。

如果你不知道答案,你能否告诉我是否还有其他类似jpcap的图书馆可以做同样的事情?我什么都没找到。或者你会说我最好使用另一种语言(C#)吗?我真的只想捕获数据包并将它们写入文件,因此我将使用最适合的语言。我非常感谢你的帮助。

0 个答案:

没有答案