最新消息:

Linux Socket 学习笔记5–网络字节序

C/C++ admin 3318浏览 0评论

对于多字节的数据,不同的CPU有不同的处理方法,主要有以下两种方法:

1.小端字节序。就是把低位字节存储在起始位置。

2.大端字节序。就是把高位字节存储在起始位置。

intel的cpu采用的是小端字节序,而motorola的CPU则用的是大端字节序,如果intel的cpu和motorola的CPU进行直接的通讯,就会产生错误。

现在网络上采用的标准方式是大端字节序。

下面提供几个大/小端字节序相互转换的函数。

1
2
3
4
5
6
7
8
9
#include <netinet/in.h>
 
unsigned long htonl(unsigned long hostlong);
 
unsigned short htons(unsigned short hostshort);
 
unsigned long ntohl(unsigned long netlong);
 
unsigned short ntohs(unsigned short netshort);

这里有个记忆诀窍:”h”代表host,”n”代表network,”s”代表”short”,”l”代表”long”.

转载请注明:爱开源 » Linux Socket 学习笔记5–网络字节序

您必须 登录 才能发表评论!