第一篇技术贴 htons 与 ntohs 的区别
来源:互联网 发布:linux系统版本查看 编辑:程序博客网 时间:2024/05/16 09:33
虽然注册CSDN已经有好几年了,学习写程序也有两年的时间了。对于绝大数人来说,我还是得菜鸟。平时遇到什么问题也会来到这个平台搜索别人的解答。也从这个平台上获益很多。
今天在公司因为一个问题和同事就关于htons与ntohs有没有区别探讨了一下,因为我平时也没留意过,凭着我自己的理解,认为是没有区别的。比如,同在X86的机器下,这两个函数都不是把小端的内存表示方法转成大端的吗。在回来的路上,我想回来查查,同时也想到何不就这个问题写下来,方便自己以后查看,也帮助那些想要解决同样问题的同志呢,于是就开始了我第一篇技术贴。希望我自己也会一直这么继续下去。好了闲话少说,开始正题吧。
我用vc试了一下,结果是相同的。
我就想去看看linux的源代码(/include/netinet/in.h)
# if __BYTE_ORDER == __BIG_ENDIAN
/* The host byte order is the same as network byte order,
so these functions are all just identity. */
# define ntohl(x) (x)
# define ntohs(x) (x)
# define htonl(x) (x)
# define htons(x) (x)
# else
# if __BYTE_ORDER == __LITTLE_ENDIAN
# define ntohl(x) __bswap_32 (x)
# define ntohs(x) __bswap_16 (x)
# define htonl(x) __bswap_32 (x)
# define htons(x) __bswap_16 (x)
# endif
# endif
代码是一样的。
ps: 开始我以为htons是函数,在源码包找了两个小时都没有找到,在绝望的时候看了下头文件,我汗颜了。
- 第一篇技术贴 htons 与 ntohs 的区别
- ntohs和htons的区别
- htonl htons ntohs ntohl的区别
- htonl htons ntohs ntohl的区别
- ntohs和htons区别?
- htons(), htonl(), ntohs(), ntohl()的区别和含义
- htons htonl ntohl ntohs 的区别和作用
- ntohs, ntohl, htons,htonl, inet_addr,inet_ntoa区别
- htons(), ntohl(), ntohs(),htons()
- htons(), ntohl(), ntohs(),htons()
- htons(), ntohl(), ntohs(),htons()
- ntohs, ntohl, htons,htonl的比较
- ntohs, ntohl, htons,htonl的比较
- ntohs, ntohl, htons,htonl的比较、详解
- ntohs, ntohl, htons,htonl的比较
- ntohs, ntohl, htons,htonl的比较、详解
- htonl,htons,ntohl,ntohs的详解
- 网络字节序与主机字节序的转换(htonl,htons,inet_addr,ntohl,ntohs,inet_ntoa)
- 如何将jboss集成到eclipse中去
- 关于asp.net membership角色与成员资格管理的一点资料
- 用Ant来打包
- 实现异地Oracle数据库的数据同步步骤
- 如何编辑目录
- 第一篇技术贴 htons 与 ntohs 的区别
- Just a quick post of a potentially useful function for LoadRunner
- Sqlite在C#中的应用
- 开通了我的个人主页
- 【小阅读^大脑袋】0308 NO.335
- 2010 最牛B的个性签名
- ASPNETDB 数据库关系图、表和视图 基本表和独立表(转载)
- C# 怎样让DataGridView不显示最下面那个空行
- The sample Loadrunner script below shows examples of FOR, DO and DO WHILE LOOPs.