1*4882a593Smuzhiyun# 2*4882a593Smuzhiyun# SPDX-License-Identifier: MIT 3*4882a593Smuzhiyun# 4*4882a593Smuzhiyun 5*4882a593Smuzhiyunimport socket 6*4882a593Smuzhiyun 7*4882a593Smuzhiyundef get_free_port(udp = False): 8*4882a593Smuzhiyun s = socket.socket(socket.AF_INET, socket.SOCK_STREAM if not udp else socket.SOCK_DGRAM) 9*4882a593Smuzhiyun s.bind(('', 0)) 10*4882a593Smuzhiyun addr = s.getsockname() 11*4882a593Smuzhiyun s.close() 12*4882a593Smuzhiyun return addr[1] 13