2009-08-22 77 views
0

我有设置网络接口为混杂模式,创建接收所有进入的包的套接字,然后进入一个循环读取一个数据包到一个缓冲器中的程序,设定的指针位置的IP头,然后打印其ip_len字段的值。问题是印刷值不可能高。读()返回像84,程序将打印21504.我查了一下数据包大小在Wireshark的,并且每个数据包的总大小是不读的返回值很远()。我怎样才能让ip_len给我理智的数据?ip_len设置为非常大的值

回答

2

这听起来像一个字节序的问题。 21504是0x5400,它字节交换是0x0054 = 84.确保您使用ntohs和(ip_len)读取值。

+0

我不是。谢谢! – computergeek6 2009-08-22 18:22:55