1. package utils
    2. import (
    3. "net"
    4. )
    5. func GetFreePort() (int, error) {
    6. addr, err := net.ResolveTCPAddr("tcp", "localhost:0")
    7. if err != nil {
    8. return 0, err
    9. }
    10. l, err := net.ListenTCP("tcp", addr)
    11. if err != nil {
    12. return 0, err
    13. }
    14. defer l.Close()
    15. return l.Addr().(*net.TCPAddr).Port, nil
    16. }