Skip to content

Latest commit

 

History

History
24 lines (19 loc) · 851 Bytes

字节序转换函数.md

File metadata and controls

24 lines (19 loc) · 851 Bytes

字节序

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

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

字节序转换函数函数原型

/* 有些系统中#include <netinet/in.h> */
#include <arpa/inet.h>

uint16_t htons(uint16_t host16bitvalue);
uint32_t htonl(uint32_t host32bitvalue);

uint16_t ntohs(uint16_t net16bitvalue);
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地址和端口号的转换。