也是struct转byte的问题

type EvLogin struct {
TimeStamp []byte
SerialNumber uint16
Iccid string
BatterCnt byte
BatteryLen byte
BatterNum string
}

type EvMsg struct {
Headflag string
Msg_type byte
Res_flag byte
Vin string
Encryption byte
Len uint16
Pk []byte
Check_code byte
}

conn, err := net.Dial("tcp", Addr)
if err != nil {
fmt.Println("tcp connect error:", err)
return
}
defer conn.Close()

pk := EvMsg{}
pk.Headflag = "##"

pk.Msg_type = 0x01
pk.Res_flag = 0xFE
pk.Vin = "12345678901234567"
pk.Encryption = 0x01
login := EvLogin{}
login.TimeStamp = []byte("170106085901")
login.SerialNumber = 1
login.Iccid = "kkkk"

想通过结构体赋值,然后fmt.Fprintf将消息发送出去,但是结构体不能直接转byte,请问应该怎么作阿,上网上查了好久也没搞懂~~

已邀请:

toukii

赞同来自:

参考encoding/下的包,比如json

tupunco

赞同来自:

fmt.Fprintf("%+v", pk) ...:)

wulinlw

赞同来自:

github.com/lunixbochs/struc
这个包做比较方便,专门解决这个问题

philc - https://github.com/philchia

赞同来自:

对面也是go的话,可以直接用gob
或者protobuffer也可以

要回复问题请先登录注册