pIphdr->iphVerlen=(4<<4|(sizeof(IPHeader)/sizeof(ULONG)))这个语句是什么意思?
sizeof(IPHeader)=20,sizeof(ULONG)=5,后面那个除法sizeof(IPHeader)/sizeof(ULONG)又表达了什么意思啊?

解决方案 »

  1.   

    填充结构体iphVerlen(1个字节,8位,其中4位为IP的版本号,这里为4,另外4位为IP Header Length(IP头IHL)的长度)
    "|"或前面的4<<4,IPv4,Ip的版本号就是4,这里做移4填充iphVerlen长度的高4位,"|"后面就是长度,sizeof(IPHeader)就是IP Header的总字节数,除以sizeof(ULONG)是看一共有多少个ULONG,这个长度应该在4位二进制之内。
    看下面这个图就很清楚了
      

  2.   

    你可以看到上面的图,sizeof(IpHeader)为20个字节,你可以看到每一行的字节数是sizeof(ULONG);(0-31)32位。