在 Golang 中获取进程端口,可以通过使用 net 包来实现。可以使用 net.Listen() 函数监听指定的端口,然后通过获取监听地址的端口来获得进程的端口。
以下是一个简单的示例代码:
package main
import (
"fmt"
"net"
)
func main() {
// 监听指定端口
listener, err := net.Listen("tcp", "localhost:0")
if err != nil {
fmt.Println("端口监听失败:", err)
return
}
// 获取监听地址的端口
addr := listener.Addr().(*net.TCPAddr)
port := addr.Port
fmt.Println("当前进程的端口是:", port)
// 关闭监听器
listener.Close()
}
在上面的代码中,我们使用 net.Listen() 函数监听了一个指定的端口(这里使用的是 localhost:0,表示为系统自动选择一个可用的端口)。然后通过 listener.Addr() 函数获取监听地址,类型为 *net.TCPAddr,然后通过 addr.Port 获取端口值。
注意,这段代码中的监听器在获取端口后立即关闭了,因为我们只是为了获取进程的端口,不需要实际的网络监听。如果你需要在你的程序中持续监听端口,你可以将关闭监听器的代码去掉。