我有一个for循环,如数据包嗅探器所示,以查找源端口号。我得到的源端口号的十进制值很好,因为只有两个字节的十六进制数来自源端口号,但是我无法获得确认号的十进制值。和序列号因为它们从循环中输出了4个以上的十六进制数。请向我展示将其转换为十进制形式的代码,谢谢。.
当两个字节存在时,我使用了按位级联,但是在确认号中有4个字节时,我无法执行按位连接。和序列号。
printf("\nSource Port Number: ");
a = packet[34];
b = packet[35];
unsigned long num3;
num3 = (a<<8) | b;
printf("%ld", num3);
printf("\nSequence Number: ");
for(i = 38; i<=41; i++) {
printf("%X", packet[i]);
}
printf("\nAck Number: ");
for(i = 42; i<=45; i++) {
printf("%X", packet[i]);
}
获取序列号和确认号。用小数点表示,例如我要获取源端口号