socket编程为什么需要htonl(), ntohl(), ntohs(),htons() 函数-------转载

匿名 (未验证) 提交于 2019-12-03 00:39:02

在C/C++写网络程序的时候,往往会遇到字节的网络顺序和主机顺序的问题。这是就可能用到htons(), ntohl(), ntohs(),htons()这4个函数。

网络字节顺序与本地字节顺序之间的转换函数:

    htonl()--"Host to Network Long"     ntohl()--"Network to Host Long"     htons()--"Host to Network Short"     ntohs()--"Network to Host Short"    

  之所以需要这些函数是因为计算机数据表示存在两种字节顺序:NBO与HBO

网络字节顺序NBO(Network Byte Order):

主机字节顺序(HBO,Host Byte Order):



  

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

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

包含的头文件为:"winsock2.h"

  原文地址:http://blog.chinaunix.net/uid-21278406-id-444362.html

原文:https://www.cnblogs.com/6-6-8-8/p/9264944.html

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!