字节顺序问题
针对"大头"(big-endian)和"小头"(little-endian)形式的编号,不同的计算机处理器的表示方法不同。
在计算机中把IP地址和端口号指定为多字节数字时,这个数就按照“主机字节”(host-byte)顺序表示。
但是网络指定IP地址和端口号,这个数需按“大头”形式来表示,也就是从最有意义的字节到最无意义的字节来表示数据,这里称为"网络字节"(network-byte)顺序。
htonl()和htons()函数实现从主机顺序转换到网络字节顺序的功能。
其中h代表主机"host";
n代表网络"network";
l代表"long";
s代表"small";
to表示转换的含义。
ntohl()和ntohs()函数实现从网络字节顺序转换为主机字节顺序的功能