网络编程接口htonl学习
1、概述
如果有人问这3个问题,你会怎么回答呢?,建议读者可以自己先想1分钟。
1、htonl作用是什么
2、客户端/服务端通信一定要用 htonl 么
3、自己编码实现下htonl
2、回复
2.1、htonl作用是什么
把一个无符号的32位整数从主机序转为网络字节序(大端模式)
2.2、客户端/服务端通信一定要用 htonl 么
不一定,若收发数据的俩端,使用相同字节序,则可以不用htonl。实际代码中建议使用,如果不使用,小端机器发送的数据,大端序机器解析会乱码或报错。
2.3、自己编码实现下htonl
uint32_t Myhtol(uint32_t host_long)
{union{int value;char c[4];} v;v.value = 0x12345678;if (v.c[0] == 0x78){// 小端模式:将主机序转成大端序return (host_long >> 24) & 0x000000FF |(host_long >> 8) & 0x0000FF00 |(host_long << 24) & 0xFF000000 |(host_long << 8) & 0x00FF0000;}// 大端模式return host_long;
}
2.4、实际内存数据
小端序
大端序