code: func readBytes(conn *bufio.Reader, bytes *[]byte, length int) (b byte, err error) {
  	newbytes := make([]byte, length)
  	n, err := conn.Read(newbytes)
  	if n != length {
  		fmt.Errorf("%d bytes read instead of %d", n, length)
  	} else if err != nil {
  		return
  	}
  	*bytes = append(*bytes, newbytes...)
  	b = (*bytes)[len(*bytes)-1]
  	return
  }
docs: // Read "length" bytes from the connection
  // Append the read bytes to "bytes"
  // Return the last read byte