1
0
mirror of https://github.com/v2fly/v2ray-core.git synced 2024-12-21 09:36:34 -05:00
v2fly/testing/servers/tcp/port.go

21 lines
412 B
Go
Raw Normal View History

2018-03-01 05:53:39 -05:00
package tcp
2021-02-16 15:31:50 -05:00
import "github.com/v2fly/v2ray-core/v4/common/net"
2018-03-01 05:53:39 -05:00
2020-12-02 10:48:32 -05:00
// PickPort returns an unused TCP port of the system.
2018-03-01 05:53:39 -05:00
func PickPort() net.Port {
2020-12-02 10:48:32 -05:00
listener := pickPort()
2018-03-01 05:53:39 -05:00
defer listener.Close()
addr := listener.Addr().(*net.TCPAddr)
return net.Port(addr.Port)
}
2020-12-02 10:48:32 -05:00
func pickPort() net.Listener {
listener, err := net.Listen("tcp4", "127.0.0.1:0")
if err != nil {
listener = pickPort()
}
return listener
}