mirror of https://github.com/XTLS/Xray-core
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
19 lines
456 B
19 lines
456 B
package udp |
|
|
|
import ( |
|
"github.com/xtls/xray-core/common" |
|
"github.com/xtls/xray-core/common/net" |
|
) |
|
|
|
// PickPort returns an unused UDP port in the system. The port returned is highly likely to be unused, but not guaranteed. |
|
func PickPort() net.Port { |
|
conn, err := net.ListenUDP("udp4", &net.UDPAddr{ |
|
IP: net.LocalHostIP.IP(), |
|
Port: 0, |
|
}) |
|
common.Must(err) |
|
defer conn.Close() |
|
|
|
addr := conn.LocalAddr().(*net.UDPAddr) |
|
return net.Port(addr.Port) |
|
}
|
|
|