class Main {
public static int byte2Integer (int[] data, boolean isSigned) {
int value = 0;
int len = Math.min(data.length, 4); //long:8; int:4
for (int i = 0; i < len; i++) {
value |= ((isSigned && i == 0) ? data[i] : data[i] & 0xff) << (8 * (len - i - 1));
}
return value;
}
public static void test(int[] a) {
int dlen = a.length;
int appId = -1;
for (int i=0; i<dlen-6; i++) {
if (a[i] == 0xab && a[i+1] == 0xab && a[i+4] == 0xba && a[i+5] == 0xba) {
int[] tmp = new int[2];
System.arraycopy(a, i+2, tmp, 0, 2);
appId = byte2Integer(tmp, false); //
System.out.println("appId="+appId);
}
// for(int j=
}
}
public static void main(String[] args) {
int[] aa={
0xab,0xab,0x03,0x07,0xba,0xba,0x7e,0x4c,0x78,0x65,
0x1,0x7e,0x4c,0x78,0x65,0x1,0x7e,0x4c,0x78,0x65,
0x1,0x7e,0x4c,0x78,0x65,0x1,0xab,0xab,0x03,0x08,
0xba,0xba,0x0,0x0,0x0,0x0,0x1,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,};
int[]bb=new int[150];
System.arraycopy(aa, 2, bb, 1, 2);
test(aa);
System.out.println("aa length:"+ aa.length+", bb:"+bb[0]+","+bb[1]+","+bb[2]);
}
}