Networking 如何将通过网络接收的字节片转换为结构

Networking 如何将通过网络接收的字节片转换为结构,networking,struct,go,Networking,Struct,Go,是否有库函数将[]字节转换为结构?我正在一个客户端上工作,以捕获从用C编写的服务器发送的结构 我有这样的结构设置 type mystruct struct { A uint32 B uint16 } type mystruct struct { A uint32 B uint16 } // ... networking code... var buff []byte = make([]byte, 6) sock.ReadFromUDP(buf

是否有库函数将[]字节转换为结构?我正在一个客户端上工作,以捕获从用C编写的服务器发送的结构

我有这样的结构设置

type mystruct struct {
    A   uint32
    B   uint16
}
type mystruct struct {
    A   uint32
    B   uint16
}

// ... networking code...

var buff []byte = make([]byte, 6)
sock.ReadFromUDP(buff)

var reader = bytes.NewReader(buff)   
var str mystruct
binary.Read(reader, binary.LittleEndian, &str)

// now str has things
fmt.Println(str.A)
这是我通过线路读取字节的方式

var s []byte = make([]byte, 6)
sock.ReadFromUDP(s)
fmt.Println(s)

您可以使用编码/二进制。 根据文档的示例:


特别是对于structs,它应该是这样的

type mystruct struct {
    A   uint32
    B   uint16
}
type mystruct struct {
    A   uint32
    B   uint16
}

// ... networking code...

var buff []byte = make([]byte, 6)
sock.ReadFromUDP(buff)

var reader = bytes.NewReader(buff)   
var str mystruct
binary.Read(reader, binary.LittleEndian, &str)

// now str has things
fmt.Println(str.A)