1
0
mirror of https://github.com/v2fly/v2ray-core.git synced 2025-02-20 23:47:21 -05:00

21 lines
412 B
Go
Raw Normal View History

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