Ciao.
Un'idea che mi viene così su due piedi è la possibilità di lanciare due thread.
  - Il primo controlla la connessione con il la libreria os [
os.system("ping <indirizzo del server")
] e qualora cada la connessione va a 
    modificare il valore di una variabile booleana globale [utilizza i lock per la scrittura su quella variabile]
  - Nell'altro una macchina a stati sulla variabile se alta [quindi true] inizia la comunicazione con il server, se no scrive un Log di mancata 
    comunicazione
Spero di essere stato chiaro.
Grazie