代码如下
//获取一个可用的端口号,这样就无需指定要运行服务的端口号,也不用考虑哪些端口号还可以分配给服务标签:return,nil,err,随机,go,GetFreePort,net,端口号 From: https://www.cnblogs.com/lunar-huazai/p/17144861.html
func GetFreePort() (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 l.Close()
return l.Addr().(*net.TCPAddr).Port, nil
}
func main() {
port, _ := GetFreePort()
fmt.Println(port)
}