1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| package tcp
|
| import "github.com/v2fly/v2ray-core/v5/common/net"
|
| // PickPort returns an unused TCP port of the system.
| func PickPort() net.Port {
| listener := pickPort()
| defer listener.Close()
|
| addr := listener.Addr().(*net.TCPAddr)
| return net.Port(addr.Port)
| }
|
| func pickPort() net.Listener {
| listener, err := net.Listen("tcp4", "127.0.0.1:0")
| if err != nil {
| listener = pickPort()
| }
| return listener
| }
|
|