func (tcpReqHandler) Process(r *tcp.Request) {
	resp := tcp.Response{
		TCPAddr: r.TCPAddr,
		Data:    []byte("GOT IT\n"),
		Length:  7,
	}
	r.TCP.Send(r.Context, &resp)
	d := int64(time.Since(r.ReadAt))
	atomic.StoreInt64(&dur, d)
}
Process is used to handle the processing of the message.
package tcp_test
import (
	"bufio"
	"io"
	"net"
	"sync/atomic"
	"time"
	"github.com/ardanlabs/tcp"
)
type tcpConnHandler struct{}
func (tch tcpConnHandler) Bind(conn net.Conn) (io.Reader, io.Writer) {
	return bufio.NewReader(conn), bufio.NewWriter(conn)
}
type tcpReqHandler struct{}
func (tcpReqHandler) Read(ipAddress string, reader io.Reader) ([]byte, int, error) {
	bufReader := reader.(*bufio.Reader)
	line, err := bufReader.ReadString('\n')
	if err != nil {
		return nil, 0, err
	}
	return []byte(line), len(line), nil
}
var dur int64