不同的CPU有不同的字节序类型,这些字节序是指在整数内存中保存的顺序,这个叫主机,而网络字节序是指数据(整型与字符型)在网络传输过程存储的顺序,它是TCP/IP中规定好的一种数据表示格式,与具体的CPU类型、操作系统等无关,从而保证数据在不同主机之间传输时能够被正确解释
网络字节序主要是解决跨平台程序数据解析一致性问题,即解决不同CPU之间数据传输问题
从第二点可以看出,网络字节序主要是解决不同CPU之间数据高低位存储不致的问题,而Char的大小是一个字节,因为不需要进行转换,而int型,Unsigned Short型都是多字节,因为这类字工在组包准备发送的同时需要进行转换,为了方便转换,BSD Socket提供了以下二对转换函数:
htons 把Unsigned Short类型从主机序转换成网络序
ntohs 把Unsigned Short类型从网络序转换成主机序
htonl 把Unsigned long类型从主机序转换成网络序
ntohl 把Unsigned long类型从网络序转换成主机序
注: