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() );
}
}'有时当我运行程序时,我会得到IndexOutOfBoundsEcxeption in try "payload = packet.getHeader(new Payload());",我不知道为什么我会得到异常
发布于 2014-11-05 03:21:15
我猜错误是因为if cond检查前一个包的协议id,该包可能与您现在正在处理的有效负载不同。
替换下面的逻辑
if (packet.hasHeader(Payload.ID)) {
try{
payload = packet.getHeader(new Payload());
}
catch(Exception e)
{
System.err.println("ERROR");
}使用
Payload pl = new Payload();
if(packet.hasHeader(pl)) //这将检查并检索有效负载
https://stackoverflow.com/questions/26689656
复制相似问题