在Go中,可以使用net
包中的Listen()
函数来获取进程监听的端口。下面是一个示例代码:
package main import ( "fmt" "net" ) func main() { listener, err := net.Listen("tcp", "127.0.0.1:0") if err != nil { fmt.Println("Failed to listen:", err) return } defer listener.Close() address := listener.Addr().(*net.TCPAddr) fmt.Println("Listening on port", address.Port) }
在上面的代码中,通过传入127.0.0.1:0
作为参数可以使操作系统为我们选择一个闲置的端口来监听。然后,通过listener.Addr()
方法可以获取到实际监听的地址,再通过address.Port
可以获取到监听的端口号。