• 字节序
  • 字节序转换函数函数原型

    字节序

    • 大端:起始地址存储高序字节
    • 小端:起始地址存储低序字节

    网络协议都使用网络字节序(大端)。主机上的字节序称为主机字节序(有的系统采用大端,有的系统采用小端)

    字节序转换函数函数原型

    1. /* 有些系统中#include <netinet/in.h> */
    2. #include <arpa/inet.h>
    3. uint16_t htons(uint16_t host16bitvalue);
    4. uint32_t htonl(uint32_t host32bitvalue);
    5. uint16_t ntohs(uint16_t net16bitvalue);
    6. uint32_t ntohl(uint32_t net32bitvalue);

    函数名中

    • h:host(主机序)
    • n:net(网络序)
    • s:short类型。16位
    • l:long类型。32位。有的系统(如Digital Alpha)尽管long是64位,但htonl和ntohl返回的仍然是32位值

    上面四个函数,进行主机序和网络序之间16和32位的转换。即IP地址和端口号的转换。