我有一个纯 TCP 服务器,我的客户端发送一个字节:1= 小端编码,0= 大端编码。
我做了类似的事情(只有这里有趣的部分)
reader := bufio.NewReader(conn)
otherIsLittleEndian, err := reader.ReadByte()
if err != nil {
panic(err)
}
var encoding = struct {}{}
if otherIsLittleEndian == 1 {
encoding = binary.LittleEndian
} else {
encoding = binary.BigEndian
}
然后这是不起作用的部分:
rnd := rand.Uint64()
buf := new(bytes.Buffer)
_ = binary.Write(buf, encoding, rnd) // not working
最后一行不起作用,但如果我用以下代码替换它,它会起作用,但我不想为每个Write()调用都这样做:
if otherIsLittleEndian == 1 {
_ = binary.Write(buf, binary.LittleEndian, rnd)
} else {
_ = binary.Write(buf, binary.BigEndian, rnd)
}
解决办法是什么?
慕斯709654
相关分类