Chinaunix首页 | 论坛 | 博客
  • 博客访问: 86029
  • 博文数量: 14
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 159
  • 用 户 组: 普通用户
  • 注册时间: 2013-07-13 18:38
文章分类

全部博文(14)

文章存档

2013年(14)

分类: C/C++

2013-07-16 11:06:01

htons

       u_short PASCAL FAR htons( u_short hostshort);
  htons的功能:将一个无符号短整型数值转换为网络字节序,即大端模式(big-endian)
  参数:u_short hostshort: 16位无符号整数
  返回值:TCP / IP网络字节顺序. 

htonl

       u_long PASCAL FAR htonl( u_long hostlong);
       功能:本函数将一个32位数从主机字节顺序转换成网络字节顺序。
  参数:hostlong:主机字节顺序表达的32位数。  
  返回值:htonl()返回一个网络字节顺序的值。

ntohs

        u_short PASCAL FAR ntohs( u_short netshort);
       功能:本函数将一个16位数由网络字节顺序转换为主机字节顺序。
  参数:netshort:一个以网络字节顺序表达的16位数。  
  返回值:ntohs()返回一个以主机字节顺序表达的数。

ntohl

       u_long PASCAL FAR ntohl( u_long netlong);
       功能:本函数将一个32位数由网络字节顺序转换为主机字节顺序。
  netlong:一个以网络字节顺序表达的32位数。
  返回值:ntohl()返回一个以主机字节顺序表达的数。

例子::

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <sys/socket.h>
  4. #include <netdb.h>
  5. #include <netinet/in.h>
  6. #include <arpa/inet.h>
  7. int main()
  8. {
  9.     long local;
  10.     int port;
  11.     local =123456;
  12.     port=1024;
  13.     printf("net: %d\n",htonl(local));
  14.     printf("net: %d\n",htons(port));
  15.     printf("loacl:%d\n",ntohl(htonl(local)));
  16.     printf("local:%d\n",ntohs(htons(port)));

  17.     return 0;
  18. }

阅读(3763) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~