在Go中,可以使用net
包中的Listen()
函數(shù)來獲取進(jìn)程監(jiān)聽的端口。下面是一個(gè)示例代碼:
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
作為參數(shù)可以使操作系統(tǒng)為我們選擇一個(gè)閑置的端口來監(jiān)聽。然后,通過listener.Addr()
方法可以獲取到實(shí)際監(jiān)聽的地址,再通過address.Port
可以獲取到監(jiān)聽的端口號(hào)。