htons函数具体解释

原创 2007年10月07日 16:27:00

     在Linux和Windows网络编程时需要用到htons和htonl函数,用来将主机字节顺序转换为网络字节顺序。

     在Intel机器下,执行以下程序

 

int main()
...{
   printf(
"%d /n",htons(16));
      return 0;
}

得到的结果是4096,初一看感觉很怪。

    解释如下,数字16的16进制表示为0x0010,数字4096的16进制表示为0x1000。 由于Intel机器是小尾端,存储数字16时实际顺序为1000,存储4096时实际顺序为0010。因此在发送网络包时为了报文中数据为0010,需要经过htons进行字节转换。如果用IBM等大尾端机器,则没有这种字节顺序转换,但为了程序的可移植性,也最好用这个函数。

   另外用注意,数字所占位数小于或等于一个字节(8 bits)时,不要用htons转换。这是因为对于主机来说,大小尾端的最小单位为字节(byte)。

htons(), ntohl(), ntohs(),htons()这4个函数

在C/C++写网络程序的时候,往往会遇到字节的网络顺序和主机顺序的问题。这是就可能用到htons(), ntohl(), ntohs(),htons()这4个函数。 网络字节顺序与本地字节顺序之间的转...
  • zhuguorong11
  • zhuguorong11
  • 2016年08月24日 15:12
  • 1605

htons函数详解

转自 Part 1: htons函数具体解释      在Linux和Windows网络编程时需要用到htons和htonl函数,用来将主机字节顺序转换为网络字节顺序。      在In...
  • bubbles_
  • bubbles_
  • 2014年06月24日 16:11
  • 1279

htons函数具体解释

htons函数具体解释     在Linux和Windows网络编程时需要用到htons和htonl函数,用来将主机字节顺序转换为网络字节顺序。     在Intel机器下,执行以下程序int mai...
  • fjiale
  • fjiale
  • 2010年06月25日 11:18
  • 2284

大尾端 小尾端和 htons函数

提到体系结构时,经常遇到大小尾端的概念,这里做个总结。     big endian:大尾端,也称大端(高位)优先存储。     little endian:小尾端,也称小端(低位)优先存储。    ...
  • hellochenlu
  • hellochenlu
  • 2016年02月25日 10:04
  • 1117

htonl()函数学习

今天在网上看到一篇关于htonl()函数的解释,感觉有道理,贴过来大家一起学习! htonl就是把本机字节顺序转化为网络字节顺序 h---host 本地主机 to  就是to 了 n  -...
  • yaxiya
  • yaxiya
  • 2011年08月26日 14:58
  • 25753

htonl、ntohl、htons、ntohs函数实现

typedef unsigned short int uint16; typedef unsigned long int uint32;   // 短整型大小端互换 #de...
  • zhubosa
  • zhubosa
  • 2016年07月21日 11:41
  • 494

模拟htonl、ntohl、htons、ntohs函数实现

模拟htonl、ntohl、htons、ntohs函数实现   2010-04-14 17:25:06|  分类: 网络编程 |  标签: |字号大中小 订阅 From: htt...
  • ysdaniel
  • ysdaniel
  • 2011年09月13日 20:23
  • 5331

htonl、ntohl、htons、ntohs函数实现

typedef unsigned short int uint16; typedef unsigned long int uint32;   // 短整型大小端互换 #de...
  • lizhi200404520
  • lizhi200404520
  • 2012年02月24日 12:15
  • 11989

Linux套接字通信常用函数-bind

所需要的头文件 #include#include函数原型 int bind(int socket,const struct sockaddr* address,socklen_t address_le...
  • eyilll
  • eyilll
  • 2015年12月24日 16:22
  • 709

关于htons和htonl

我开始的时候认为htons和htonl可以只用htonl代替但是后来发现这个是错误,会导致服务器端和客户端连接不上。 下面就让我们看看他们: htons #include   ui...
  • chenqiai0
  • chenqiai0
  • 2013年04月10日 16:18
  • 18692
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:htons函数具体解释
举报原因:
原因补充:

(最多只允许输入30个字)