有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

尝试使用jpcap读取数据包时出现网络编程异常(java.lang.InstanceionException)

我正在尝试使用多播发送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中工作得非常好。 当我在没有捕获器的情况下运行代码时。setFilter()我得到了异常。有时我在异常之前得到1-2倍的“null”,因此似乎有几个数据包让我的程序崩溃(例如信标)。当我设置一个过滤器时,比如“udp”,我没有得到异常,但每次都是“null”,因为没有捕获任何数据包

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

如果你不知道答案,你能告诉我是否有像jpcap这样的图书馆也能做到这一点吗?我什么也没找到。或者你会说我最好用另一种语言来做这个(C#)?我真的只想捕获数据包并将其写入文件,所以我将使用最适合的语言。我非常感谢你的帮助


共 (0) 个答案