1. 字节序

计算机硬件有两种储存数据的方式:大端字节序(big endian)和小端字节序(little endian)

  • Big endian:高位字节数据存放在低地址处,低位数据存放在高地址处,俗称大端
  • Little endian:高位字节数据存放在高地址处,低位数据存放在低地址处,俗称小端
  • 只有读取的时候,才必须区分字节序,其他情况都不用考虑

网络字节序,是指网络传输的字节序,可能是大端序或者小端序,取决于软件开始时通讯双方的协议规定。 TCP/IP协议RFC1700规定使用“大端”字节序为网络字节序,开发的时候需要遵守这一规则。

1.1. binary.BigEndian && binary.LittleEndian

var num int32
buffer := make([]byte, 4)
length, err := conn.Read(buffer)
if err != nil {
      return
}
buf := bytes.NewReader(buffer)
err = binary.Read(buf, binary.BigEndian, &num)

results matching ""

    No results matching ""