Go复习之解决tcp粘包客户端

思路:假如发送100个student数据,每个student都是一个struct,则每个student发送的字符串包含两部分:1、json格式化student字符串 2、json字符串的长度,这个长度用大端保存

func getSendBody(stu *student) []byte {
    bytes, e := json.Marshal(stu)
    if e != nil {
        panic(e.Error())
    }
    fmt.Println("len(bytes)==", len(bytes))
    buf := new(bytes2.Buffer)

    bytes2 := make([]byte, 4)
    binary.BigEndian.PutUint32(bytes2, uint32(len(bytes)))
    buf.Write(bytes2)
    buf.Write(bytes)
    return buf.Bytes()
}

 注意:先保存长度字符串,然后保存json字符串

原文地址:https://www.cnblogs.com/wanjch/p/11508390.html