def get_free_port(port, port_retries):
for port in random_ports(port, port_retries+1):
try:
s = socket.socket()
s.bind(('', port))
port = s.getsockname()[1]
s.close()
return port
except socket.error as e:
if e.errno == errno.EADDRINUSE:
print('The port %i is already in use, trying another port.' % port)
continue
elif e.errno in (errno.EACCES, getattr(errno, 'WSAEACCES', errno.EACCES)):
print("Permission to listen on port %i denied" % port)
continue
else:
raise
return None
# http://stackoverflow.com/questions/13593223/making-sure-a-python-script-with-subprocesses-dies-on-sigint
评论列表
文章目录