TCP不提供任何消息框架,而是由您来缓冲流并根据定义的协议解析消息。
解析TCP流时,将连接立即包装在中通常是有用的
bufio.Reader,因为它不仅可以使读取更加有效,而且可以为您提供更多有用的方法。如何解析协议的示例可能是:
buff := make([]byte, 50)c := bufio.NewReader(conn)for { // read a single byte which contains the message length size, err := c.ReadByte() if err != nil { return err } // read the full message, or return an error _, err := io.ReadFull(c, buff[:int(size)]) if err != nil { return err } fmt.Printf("received %xn", buff[:int(size)])}


