请问什么是网络字节序?怎样转换?

解决方案 »

  1.   

    网络字节序,与一般字节序不一样,一般字节序如果把是ABCD,则网络字节序是BADC.
    转换函数有以下:
    htonl,htons,ntohs,ntohl;
      

  2.   

    ntohs    // net to host 
    ntohl
      

  3.   

    调用htonl得包含什么头文件呀?是#include <netinet/in.h>吗?可是为什么编译通不过呢?
      

  4.   

    网络字节顺序是对整型和浮点型而言的,对于多字节的数字类型,有高位字节在前还是低位字节在前的区别,在TCP/IP中,好象是规定一律高位字节在前,而Intel 80x86 CPU规定是低位字节在前
      

  5.   

    首先是字与双字在各种系统中内部存储的方式的不同,在Windows中字与双字是高位在低地址排列的,而网络传输的标准是低位在低地址排列,比如一个十进制数字4660在Windows系统中存储成3412h,而在网络上表示是1234h。所以我们在设置或读取协议首部中有关用字或双字表示(一般象TCP中的端口、序号,而IP地址则不是)的字段时要切记转换他们的排列顺序。下面是一个转换字排列顺序的转换算法:WORD SwapWord(WORD WordToReverse)
    {
    WORD lo,hi;
    WORD result;lo= WordToReverse & 0xff;
    hi= WordToReverse & 0xff00;
    lo=lo<<8;
    hi=hi>>8;
    result=hi | lo;return result;
    }
    在实际编程中调用winsock函数进行转换即可