在 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 獲取端口值。
注意,這段代碼中的監聽器在獲取端口后立即關閉了,因為我們只是為了獲取進程的端口,不需要實際的網絡監聽。如果你需要在你的程序中持續監聽端口,你可以將關閉監聽器的代碼去掉。