socket – Comprobar y reintentar conexión python

Estoy haciendo un programa que establece conexión por el socket 4533 a un servidor y quería añadirle las funciones de detectar si se puede realizar la conexión antes de establecerla para que se cierre el programa y añadirle un bucle que reintente la conexión un numero determinado de veces.

import socket, time, select


# local host IP '127.0.0.1' 
host = '127.0.0.1'

# Define the port on which you want to connect 
port = 4533
address = (host,port)
print("Se va a establecer la conexión...n")
FORMAT = 'ascii'

#Creamos el socket y lo conectamos por el socket 4533 a localhost
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) 
result_of_check = s.connect_ex(address)

def Client(): 

    while True:
        print("Conexion establecida")
        message = "P 180.0 0.0r"
    
        # message sent to server 
        s.send(message.encode(FORMAT)) 
    
        infds, outfds, errfds = select.select((s), (s), (), 5)
        if len(infds) != 0:
            data = s.recv(1024)
            if len(data) != 0:
                print('Received from the server :',str(data.decode(FORMAT)))        
        if len(outfds) != 0:
                print("Esperando...n")
    
        time.sleep(5)
    # Close the connection 
    s.close()
    print("Un saludo")
      

def Comprobacion():
    
    if result_of_check == 0:
       print("Se va a establecer conexión...n")
       Client()

    else: 
       print("No es posible establecer conexionn")

    s.close()   

Comprobacion()

Lo he intentado repitiendo el bucle que comprueba la conexion pero me da el error de que entra en recursividad así que no se como plantearlo, ¿con un for?