Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.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
Java jnetpcap IndexOutOfBoundsEcxeption有效负载_Java_Indexoutofboundsexception_Payload_Jnetpcap - Fatal编程技术网

Java jnetpcap IndexOutOfBoundsEcxeption有效负载

Java jnetpcap IndexOutOfBoundsEcxeption有效负载,java,indexoutofboundsexception,payload,jnetpcap,Java,Indexoutofboundsexception,Payload,Jnetpcap,有时,当我运行程序时,我会在try payload=packet.getHeadernew payload中获得IndexOutOfBoundsEcxeption;我不知道为什么会出现异常我猜错误是因为if cond检查前一个数据包的协议id,该数据包可能与您现在处理的负载不同 替换以下逻辑 如果packet.hasHeaderPayload.ID{ if (packet.hasHeader(ip)) { String str = FormatUtils.ip(ip.s

有时,当我运行程序时,我会在try payload=packet.getHeadernew payload中获得IndexOutOfBoundsEcxeption;我不知道为什么会出现异常

我猜错误是因为if cond检查前一个数据包的协议id,该数据包可能与您现在处理的负载不同

替换以下逻辑

如果packet.hasHeaderPayload.ID{

  if (packet.hasHeader(ip)) {  
         String str = FormatUtils.ip(ip.source());  

         if (packet.hasHeader(Payload.ID)) {

             try{
             payload = packet.getHeader(new Payload());
             }
             catch(Exception e)
             {
                System.err.println("ERROR"); 

             }


              if(payload!=null){
              String pattern;
              synchronized (MainThread.lockB){ 
              pattern=MPSM.findpatt(payload.toString());
              }
            synchronized (MainThread.lockB){ 
                smpsmCheckPattern(pattern, nameOfAdd, payload.toString() );
                }
              }'

有效载荷pl=新有效载荷

ifpacket.hasHeaderpl//这将检查并检索有效负载

         try{
         payload = packet.getHeader(new Payload());
         }
         catch(Exception e)
         {
            System.err.println("ERROR"); 
         }