使用随机端口

未匹配的标注

有时候我们需要使用随机端口.

我们直接使用 :0 端口即可, 操作系统会自动分配一个大于 1024 的可用端口给你.

// main.go
package main

import (
    "fmt"
    "net"
    "net/http"
)

func main() {
    l, err := net.Listen("tcp", ":0")
    if err != nil {
        panic(err)
    }
    fmt.Println("listening on", l.Addr().String()) // 地址(含端口)
    fmt.Println("using port", l.Addr().(*net.TCPAddr).Port) // 端口
    err = http.Serve(l, nil)
    if err != nil {
        panic(err)
    }
}

执行 go run main.go 命令运行后, 不出意外的话会输出(端口会随机):

listening on [::]:3311
using prot 3311

这样我们在写一些 tcp/http 之类的服务时就不用为想一个端口号费心费力了.

多服务 + 随机端口 + 服务注册使用更佳.

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
taadis
讨论数量: 0
发起讨论 只看当前版本


暂无话题~