mirror of
https://gitee.com/dromara/mayfly-go
synced 2025-11-03 07:50:25 +08:00
22 lines
374 B
Go
22 lines
374 B
Go
package utils
|
|
|
|
import "net"
|
|
|
|
// GetAvailablePort 获取可用端口
|
|
func GetAvailablePort() (int, error) {
|
|
addr, err := net.ResolveTCPAddr("tcp", "localhost:0")
|
|
if err != nil {
|
|
return 0, err
|
|
}
|
|
|
|
l, err := net.ListenTCP("tcp", addr)
|
|
if err != nil {
|
|
return 0, err
|
|
}
|
|
|
|
defer func(l *net.TCPListener) {
|
|
_ = l.Close()
|
|
}(l)
|
|
return l.Addr().(*net.TCPAddr).Port, nil
|
|
}
|