はじめに サーバを起動する時にポートは何でもよいので空きポートをListenしたい事がありました。 ウェルノウンポート以外を順に調べるしかないのかと思っていたのですが、 そんな面倒はなくポート0をListenすると空きポートが割り当てられます。 サンプル 以下はGoで書いた検証コードです。 package main import ( "fmt" "net" ) func main() { l, err := net.Listen("tcp", "localhost:0") if err == nil { defer l.Close() addr := l.Addr().String() _, port, err := net.SplitHostPort(addr) if err == nil { fmt.Printf(" listen port: %s\n", port) } else {