码迷,mamicode.com
首页 > 其他好文 > 详细

htons和htonl函数具体应用

时间:2015-01-09 12:04:12      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:

htons和htonl函数具体应用

htons和htonl函数,是用来将主机字节顺序转换为网络字节顺序
在进行网络抓包时,抓到的包的数据是网络字节顺序,在进行编程时,要进行主机字节顺序和网络字节顺序间的转换。
例如:
(对一软件进行抓包时,写的一段小程序)
ipp2p:

   if(get_u16(payload,0)==__constant_htons(0x0600)
         && get_u32(payload,2)==(plen-6))
   {
     printk("identifing and datalen=%d /n",plen);
     return(IPP2P_TEST*100+6);
   }
  

网络字节是0x0600,而在主机内部所读的字节是0x06.

简单而言,htons()是将一个数的高低位进行互换:

(如:06 00 --> 00 06)

 

注明:

get_u32(payload,0)==_htonl(0x06073200)

则主机内部字节为:0x320706

htonl 是针对32位,4个字节而言

htons 是针对16位,2个字节而言

另外需注意,数字所占位数小于或等于一个字节(8 bits)时,不要需转换。

htons和htonl函数具体应用

标签:

原文地址:http://www.cnblogs.com/zhaoxinshanwei/p/4212763.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!