Fork me on GitHub

Python Go 动态获取可用端口号

Go

package addr

import "net"

func GetFreePort() (int, error) {
	addr, err := net.ResolveTCPAddr("tcp", "localhost:0")
	if err != nil{
		return 0, nil
	}
	l, err := net.ListenTCP("tcp", addr)
	if err != nil{
		return 0, nil
	}
	defer l.Close()
	return l.Addr().(*net.TCPAddr).Port, nil
}

Python

def get_free_tcp_port():

    tcp = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    tcp.bind(("", 0))
    _, port = tcp.getsockname()
    tcp.close()

    return port
posted @ 2021-10-14 17:02  myboran  阅读(230)  评论(0)    收藏  举报