code: func (p *Proxy) ServeTCP(conn net.Conn) {
  	log.Debugf("Handling connection from %s", conn.RemoteAddr())
  	defer conn.Close()
  	connBackend, err := net.DialTCP("tcp", nil, p.target)
  	if err != nil {
  		log.Errorf("Error while connection to backend: %v", err)
  		return
  	}
  	defer connBackend.Close()
  
  	errChan := make(chan error, 1)
  	go connCopy(conn, connBackend, errChan)
  	go connCopy(connBackend, conn, errChan)
  
  	err = <-errChan
  	if err != nil {
  		log.Errorf("Error during connection: %v", err)
  	}
  }
docs: // ServeTCP forwards the connection to a service