github.com/zhiqiangxu/util@v0.0.0-20230112053021-0a7aee056cd5/port/tcp.go (about) 1 package port 2 3 import "net" 4 5 // ChooseTCP returns a useable tcp port 6 func ChooseTCP() (p uint16, err error) { 7 l, err := net.Listen("tcp", ":0") 8 if err != nil { 9 return 10 } 11 12 p = uint16(l.Addr().(*net.TCPAddr).Port) 13 14 err = l.Close() 15 return 16 } 17 18 // ListenTCP returns a new tcp listener 19 func ListenTCP() (l net.Listener, err error) { 20 l, err = net.Listen("tcp", ":0") 21 return 22 }