网络序是大字序:
0x12345678
低 ---------------> 高 (address ])
转换为网络序address [0] = 0x12 address [1] = 0x34 ......
假设从网络上获取一IP地址为192.168.1.1,即IP = 0xC0A80101,由于网络是大字序,所以存储的时候是这样的(高位存在低地址):
IP[3] = 0x1 ; IP[2] = 0x1; IP[1] = 0xA8; IP[0] = 0xC0
接收的时候存储在机器上的内存为:
0x: C0 A8 1 1 (IP)
低 ---------------> 高 (address ])
若是大端机器读取的时候,就无需转换得到的IP地址为IP = 0xC0A80101,若是小端机器在读取的时候,如果不用ntoh转换一下,直接读取得到的IP地址为0X0101A8C0,显然不是我们想要的IP地址,所以在从网络上获得数据,需要在本地上转换为主机序才能得到正确的值
总而言之,无论大端还是小端主机接收到的网络数据,在内存上的存储方式都是一样的,只是不同类型机器在读取数据时候采取的方式不一致~~