硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2391|回复: 1
收起左侧

[网络知识] 网络字节顺序,htonl,htons用于本机序转换到网络序;ntohl,ntohs用于网络序转换到

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107077
QQ
发表于 2017-6-2 02:18:24 | 显示全部楼层 |阅读模式
网络传输一般采用大端序,也被称之为网络字节序,或网络序。IP协议中定义大端序为网络字节序。
Berkeley套接字定义了一组转换函数,用于16和32bit整数在网络序和本机字节序之间的转换。
htonl,htons用于本机序转换到网络序;ntohl,ntohs用于网络序转换到本机序。



#ifdef __BIG_ENDIAN
#define U32_LE(v)      (U32)(__rev(v))
#define U16_LE(v)      (U16)(__rev(v) >> 16)
#define U32_BE(v)      (U32)(v)
#define U16_BE(v)      (U16)(v)
#else
#define U32_BE(v)      (U32)(__rev(v))
#define U16_BE(v)      (U16)(__rev(v) >> 16)
#define U32_LE(v)      (U32)(v)
#define U16_LE(v)      (U16)(v)
#endif
#define ntohs(v)        U16_BE(v)
#define ntohl(v)        U32_BE(v)
#define htons(v)        ntohs(v)
#define htonl(v)        ntohl(v)


htonl,其实是host to network, l 的意思是返回类型是long:链接
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107077
QQ
 楼主| 发表于 2017-6-2 02:23:30 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-16 18:39 , Processed in 0.265552 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表