Go复习之解决tcp粘包---服务端读取

思路:先定义一个长度为4的切片,然后读取长度字符串,并解析长度并保存到变量len,然后定义一个长度为len的切片用于读取json字符串

func handleConn(conn net.Conn) {
    lenBuf := make([]byte, 4)
    for{
        n, err := conn.Read(lenBuf)
        if err == io.EOF {
            fmt.Println("读取完毕。。。。。。")
            break
        }
        if err != nil {
            fmt.Println(err.Error())
            break
        }
        len := binary.BigEndian.Uint32(lenBuf)
        buf := make([]byte, len)
        n, err = conn.Read(buf)
        if err != nil {
            fmt.Println(err.Error())
            break
        }
        fmt.Printf("n=%d,content=%s\n", n, string(buf))
    }
}

猜你喜欢

转载自www.cnblogs.com/wanjch/p/11508408.html
今日推荐