func (p *ShortPool) Get(ctx context.Context, network, address string, opt *remote.ConnOption) (net.Conn, error) {
	conn, err := opt.Dialer.DialTimeout(network, address, opt.ConnectTimeout)
	addr := utils.NewNetAddr(network, address)
	if err != nil {
		p.reporter.ConnFailed(Short, p.serviceName, addr)
		return nil, fmt.Errorf("dial connection err: %s, addr: %s", err, addr)
	}
	p.reporter.ConnSucceed(Short, p.serviceName, addr)
	return &shortConn{Conn: conn}, nil
}
Get return a PoolConn instance which implement net.Conn interface.
package connpool
import (
	"context"
	"fmt"
	"net"
	"github.com/cloudwego/kitex/pkg/remote"
	"github.com/cloudwego/kitex/pkg/utils"
)
var _ remote.ConnPool = &ShortPool{}
type shortConn struct {
	net.Conn
	closed bool
}
func (sc *shortConn) Close() error {
	if !sc.closed {
		sc.closed = true
		return sc.Conn.Close()
	}
	return nil
}
func (sc *shortConn) RawConn() net.Conn {
	if sc.closed {
		return nil
	}
	return sc.Conn
}
type ShortPool struct {
	serviceName string
	reporter    Reporter
}
func NewShortPool(serviceName string) *ShortPool {
	return &ShortPool{
		serviceName: serviceName,
		reporter:    &DummyReporter{},
	}
}