Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我在下面的程序中遇到不满意的链接错误? 导入jpcap.*; 导入jpcap.packet.*; 导入java.io.*; 导入jpcap.packet.TCPPacket.*; 导入java.io.*; 导入jpcap.JpcapCaptor.*; 类网络实现PacketReceiver{ System.out.println(System.getProperty(“java.library.path”); 字符串sp=null; 字符串dp=null; 字符串窗口=null; 字符串序列=null; 字符串确认=null; FileWriter ff=null; 字符串da=null; 公共无效接收数据包(数据包pt){ 试一试{ if(TCPPacket的pt实例){ TCPPacket tp=(TCPPacket)pt; ff=新的文件编写器(“da.txt”,true); sp=新整数(tp.src_port).toString(); dp=新整数(tp.dst_端口).toString(); window=新整数(tp.window).toString(); sequence=新的Long(tp.sequence).toString(); 确认=新长(tp.ack_num).toString(); 字节[]dat=tp.data; da=新字符串(dat); ff.write(“\r\n源端口为:-”+sp); ff.write(“\r\n设计端口为:-”+dp); ff.写入(“\r\n序列号为:-”+序列); ff.写入(“\r\n确认号为:-”+确认); ff.write(“\r\n rsv1标志的状态为:-”+tp.rsv1); ff.write(“\r\n rsv2标志的状态为:-”+tp.rsv2); ff.write(“\r\n同步标志的状态为:-”+tp.Syn); ff.write(“\r\n Urg标志的状态为:-”+tp.Urg); ff.write(“\r\n Fin标志的状态为:-”+tp.Fin); ff.写入(“\r\n数据:-”+da); ff.写入(“\r\n”); ff.写入(“\r\n”); ff.close(); } }捕获(例外e){ System.out.println(e.getMessage()); } } 公共静态void main(字符串args[])引发IOException{ int i; 试一试{ NetworkInterface[]devices=JpcapCaptor.getDeviceList(); //对于每个网络接口 对于(i=0;i_Java_Jpcap_Unsatisfiedlinkerror - Fatal编程技术网

为什么我在下面的程序中遇到不满意的链接错误? 导入jpcap.*; 导入jpcap.packet.*; 导入java.io.*; 导入jpcap.packet.TCPPacket.*; 导入java.io.*; 导入jpcap.JpcapCaptor.*; 类网络实现PacketReceiver{ System.out.println(System.getProperty(“java.library.path”); 字符串sp=null; 字符串dp=null; 字符串窗口=null; 字符串序列=null; 字符串确认=null; FileWriter ff=null; 字符串da=null; 公共无效接收数据包(数据包pt){ 试一试{ if(TCPPacket的pt实例){ TCPPacket tp=(TCPPacket)pt; ff=新的文件编写器(“da.txt”,true); sp=新整数(tp.src_port).toString(); dp=新整数(tp.dst_端口).toString(); window=新整数(tp.window).toString(); sequence=新的Long(tp.sequence).toString(); 确认=新长(tp.ack_num).toString(); 字节[]dat=tp.data; da=新字符串(dat); ff.write(“\r\n源端口为:-”+sp); ff.write(“\r\n设计端口为:-”+dp); ff.写入(“\r\n序列号为:-”+序列); ff.写入(“\r\n确认号为:-”+确认); ff.write(“\r\n rsv1标志的状态为:-”+tp.rsv1); ff.write(“\r\n rsv2标志的状态为:-”+tp.rsv2); ff.write(“\r\n同步标志的状态为:-”+tp.Syn); ff.write(“\r\n Urg标志的状态为:-”+tp.Urg); ff.write(“\r\n Fin标志的状态为:-”+tp.Fin); ff.写入(“\r\n数据:-”+da); ff.写入(“\r\n”); ff.写入(“\r\n”); ff.close(); } }捕获(例外e){ System.out.println(e.getMessage()); } } 公共静态void main(字符串args[])引发IOException{ int i; 试一试{ NetworkInterface[]devices=JpcapCaptor.getDeviceList(); //对于每个网络接口 对于(i=0;i

为什么我在下面的程序中遇到不满意的链接错误? 导入jpcap.*; 导入jpcap.packet.*; 导入java.io.*; 导入jpcap.packet.TCPPacket.*; 导入java.io.*; 导入jpcap.JpcapCaptor.*; 类网络实现PacketReceiver{ System.out.println(System.getProperty(“java.library.path”); 字符串sp=null; 字符串dp=null; 字符串窗口=null; 字符串序列=null; 字符串确认=null; FileWriter ff=null; 字符串da=null; 公共无效接收数据包(数据包pt){ 试一试{ if(TCPPacket的pt实例){ TCPPacket tp=(TCPPacket)pt; ff=新的文件编写器(“da.txt”,true); sp=新整数(tp.src_port).toString(); dp=新整数(tp.dst_端口).toString(); window=新整数(tp.window).toString(); sequence=新的Long(tp.sequence).toString(); 确认=新长(tp.ack_num).toString(); 字节[]dat=tp.data; da=新字符串(dat); ff.write(“\r\n源端口为:-”+sp); ff.write(“\r\n设计端口为:-”+dp); ff.写入(“\r\n序列号为:-”+序列); ff.写入(“\r\n确认号为:-”+确认); ff.write(“\r\n rsv1标志的状态为:-”+tp.rsv1); ff.write(“\r\n rsv2标志的状态为:-”+tp.rsv2); ff.write(“\r\n同步标志的状态为:-”+tp.Syn); ff.write(“\r\n Urg标志的状态为:-”+tp.Urg); ff.write(“\r\n Fin标志的状态为:-”+tp.Fin); ff.写入(“\r\n数据:-”+da); ff.写入(“\r\n”); ff.写入(“\r\n”); ff.close(); } }捕获(例外e){ System.out.println(e.getMessage()); } } 公共静态void main(字符串args[])引发IOException{ int i; 试一试{ NetworkInterface[]devices=JpcapCaptor.getDeviceList(); //对于每个网络接口 对于(i=0;i,java,jpcap,unsatisfiedlinkerror,Java,Jpcap,Unsatisfiedlinkerror,的Javadoc非常简单。您缺少jcap所需的一些库 将来,当您遇到不理解的异常时,javadocs是一个很好的起点。未满足LinkError意味着尚未加载“JpcapCaptor”本机库 import jpcap.*; import jpcap.packet.*; import java.io.*; import jpcap.packet.TCPPacket.*; import java.io.*; import jpcap.JpcapCaptor.*; class Network imp

的Javadoc非常简单。您缺少jcap所需的一些库


将来,当您遇到不理解的异常时,javadocs是一个很好的起点。

未满足LinkError意味着尚未加载“JpcapCaptor”本机库

import jpcap.*;
import jpcap.packet.*;
import java.io.*;
import jpcap.packet.TCPPacket.*;
import java.io.*;
import jpcap.JpcapCaptor.*;


class Network implements PacketReceiver {
    System.out.println(System.getProperty("java.library.path"));
    String sp=null;
    String dp=null;
    String window=null;
    String sequence=null;
    String acknowledge=null;
    FileWriter ff=null;
    String da=null;

    public void receivePacket(Packet pt) {
        try {
            if(pt instanceof TCPPacket) {
                TCPPacket tp=(TCPPacket)pt;
                ff=new FileWriter("da.txt",true);
                sp=new Integer(tp.src_port).toString();
                dp=new Integer(tp.dst_port).toString();
                window=new Integer(tp.window).toString();
                sequence=new Long(tp.sequence).toString();
                acknowledge=new Long(tp.ack_num).toString();
                byte[]dat=tp.data;
                da=new String(dat);
                ff.write("\r\n Source port is :-"+sp);    
                ff.write("\r\n Desination port is:-"+dp);
                ff.write("\r\n Sequence no is:-"+sequence);
                ff.write("\r\n Acknowledgement no  is:-"+acknowledge);
                ff.write("\r\n Status of rsv1 flag is:-"+tp.rsv1);
                ff.write("\r\n Status of rsv2 flag is:-"+tp.rsv2);
                ff.write("\r\n Status of Syn flag is:-"+tp.syn);
                ff.write("\r\n Status of Urg flag is:-"+tp.urg);
                ff.write("\r\n Status of Fin flag is:-"+tp.fin);
                ff.write("\r\n Data :-"+da);
                ff.write("\r\n");
                ff.write("\r\n");
                ff.close();
            }                 
        } catch(Exception e) {
            System.out.println(e.getMessage());
        }
   }  

   public static void main(String args[])throws IOException {
        int i;        
        try {
            NetworkInterface[] devices = JpcapCaptor.getDeviceList();

            //for each network interface
            for (i = 0; i < devices.length; i++) {
                //print out its name and description
                System.out.println(i+": "+devices[i].name + "(" +    
                        devices[i].description+")"+devices[i].loopback);
                //print out its datalink name and description
                System.out.println(" datalink: "+devices[i].datalink_name + "(" 
                        + devices[i].datalink_description+")");

                //print out its MAC address
                System.out.print(" MAC address:");
                for (byte b : devices[i].mac_address)
                    System.out.print(Integer.toHexString(b&0xff) + ":");
                System.out.println();

                //print out its IP address, subnet mask and broadcast address
                for (NetworkInterfaceAddress a : devices[i].addresses)
                    System.out.println(" address:"+a.address + " " + a.subnet + " "+ 
                            a.broadcast);
            }
            JpcapCaptor captor=JpcapCaptor.openDevice(devices[0], 65535, true, 20);
            captor.loopPacket(-1,new Network());
            captor.close();
        }
        catch(Exception e) {
            System.out.println(e.getMessage());
        }
    }
}

在计算机中安装jpcap,然后尝试运行代码。
您可以从这里下载jpcap.exe文件

在完整编译和链接jpcap(在Mac OS X计算机上使用eclipse)之后,我遇到了相同的问题。原来有两个版本的Jpcap:(没有JpCaptor),还有一个版本有JpCaptor:。也许这有帮助

一定是因为代码的缩进不太好。请对代码块使用一致的逻辑缩进。代码的缩进是为了帮助人们理解程序流程。另外,尝试捕捉更具体的异常,不要捕捉
(异常e)
,我不想数数第63行是哪一行。也许你可以帮助拉姆·夏尔玛?@FrancisP奇怪的是,根据TextPad的说法,第63行是
//打印出它的数据链名称和描述。如图所示,Francis P第63行是“NetworkInterface[]devices=JpcapCaptor.getDeviceList();”虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,仅链接的答案可能无效。-@Zizouz212-这不是一个链接唯一的答案。它为这个问题提供了一个解释,并以链接作为支持证据。
import jpcap.*;
import jpcap.packet.*;
import java.io.*;
import jpcap.packet.TCPPacket.*;
import java.io.*;
import jpcap.JpcapCaptor.*;


class Network implements PacketReceiver {
    System.out.println(System.getProperty("java.library.path"));
    String sp=null;
    String dp=null;
    String window=null;
    String sequence=null;
    String acknowledge=null;
    FileWriter ff=null;
    String da=null;

    public void receivePacket(Packet pt) {
        try {
            if(pt instanceof TCPPacket) {
                TCPPacket tp=(TCPPacket)pt;
                ff=new FileWriter("da.txt",true);
                sp=new Integer(tp.src_port).toString();
                dp=new Integer(tp.dst_port).toString();
                window=new Integer(tp.window).toString();
                sequence=new Long(tp.sequence).toString();
                acknowledge=new Long(tp.ack_num).toString();
                byte[]dat=tp.data;
                da=new String(dat);
                ff.write("\r\n Source port is :-"+sp);    
                ff.write("\r\n Desination port is:-"+dp);
                ff.write("\r\n Sequence no is:-"+sequence);
                ff.write("\r\n Acknowledgement no  is:-"+acknowledge);
                ff.write("\r\n Status of rsv1 flag is:-"+tp.rsv1);
                ff.write("\r\n Status of rsv2 flag is:-"+tp.rsv2);
                ff.write("\r\n Status of Syn flag is:-"+tp.syn);
                ff.write("\r\n Status of Urg flag is:-"+tp.urg);
                ff.write("\r\n Status of Fin flag is:-"+tp.fin);
                ff.write("\r\n Data :-"+da);
                ff.write("\r\n");
                ff.write("\r\n");
                ff.close();
            }                 
        } catch(Exception e) {
            System.out.println(e.getMessage());
        }
   }  

   public static void main(String args[])throws IOException {
        int i;        
        try {
            NetworkInterface[] devices = JpcapCaptor.getDeviceList();

            //for each network interface
            for (i = 0; i < devices.length; i++) {
                //print out its name and description
                System.out.println(i+": "+devices[i].name + "(" +    
                        devices[i].description+")"+devices[i].loopback);
                //print out its datalink name and description
                System.out.println(" datalink: "+devices[i].datalink_name + "(" 
                        + devices[i].datalink_description+")");

                //print out its MAC address
                System.out.print(" MAC address:");
                for (byte b : devices[i].mac_address)
                    System.out.print(Integer.toHexString(b&0xff) + ":");
                System.out.println();

                //print out its IP address, subnet mask and broadcast address
                for (NetworkInterfaceAddress a : devices[i].addresses)
                    System.out.println(" address:"+a.address + " " + a.subnet + " "+ 
                            a.broadcast);
            }
            JpcapCaptor captor=JpcapCaptor.openDevice(devices[0], 65535, true, 20);
            captor.loopPacket(-1,new Network());
            captor.close();
        }
        catch(Exception e) {
            System.out.println(e.getMessage());
        }
    }
}
static{
      System.loadLibrary("JpcapCaptor.dll");
}