13 lines
		
	
	
	
		
			354 B
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			13 lines
		
	
	
	
		
			354 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
								 | 
							
								import socket
							 | 
						||
| 
								 | 
							
								from contextlib import closing
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								def find_free_port():
							 | 
						||
| 
								 | 
							
								    with closing(socket.socket(socket.AF_INET, socket.SOCK_STREAM)) as s:
							 | 
						||
| 
								 | 
							
								        try:
							 | 
						||
| 
								 | 
							
								            s.bind(('', 0))
							 | 
						||
| 
								 | 
							
								            s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
							 | 
						||
| 
								 | 
							
								        except Exception:
							 | 
						||
| 
								 | 
							
								            return None
							 | 
						||
| 
								 | 
							
								        else:
							 | 
						||
| 
								 | 
							
								            return s.getsockname()[1]
							 |