Hunter0x7c7
2022-08-11 b8230139fb40edea387617b6accd8371e37eda58
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
}