在 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 获取端口值。
注意,这段代码中的监听器在获取端口后立即关闭了,因为我们只是为了获取进程的端口,不需要实际的网络监听。如果你需要在你的程序中持续监听端口,你可以将关闭监听器的代码去掉。