zoukankan      html  css  js  c++  java
  • htons和htonl函数具体应用

    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)时,不要需转换。

  • 相关阅读:
    mac重启nginx时报nginx.pid不存在的解决办法
    js 正则表达式
    js 闭包
    js yarn
    js npm
    vue3 vite
    node 错误处理
    node fs
    linux包管理工具使用和区别(转)
    MySQL数据库学习----理论基础
  • 原文地址:https://www.cnblogs.com/zhaoxinshanwei/p/4212763.html
Copyright © 2011-2022 走看看