Ciao a tutti ragazzi, era da tanto che non scrivevo sul forum e ho pure dovuto rifare l'account!

Ho un progetto di sistemi operativi dove si richiede di fare una chat in c. Riesco tranquillamente a far comunicare client e server (per esempio per autenticarsi e scambiare messaggi di sistema), ma non riesco a gestire le conversazioni.

Esattamente non so come riuscire a sincronizzare ricezione e invio di messaggi sul client.

Ogni client deve poter ricevere in ogni momento tutti i messaggi e avere la possibilità di inviare Avete consigli su come possa sviluppare tutto questo?

La mia soluzione (ovviamente non funzionante a dovere.....) fa inviare al client un messaggio e si mette in attesa su una socket per un timeout di 5 secondi in ascolto. Se non arriva nulla si rimette in assetto da invio. E cosi fino alla fine. Ma giustamente, se uno scrive e il client non sta ricevendo il messaggio va perso. So che è l'approccio sbagliato ma è l'unico che conosco e infatti chiedo a voi per aprirmi la mente

Grazie a tutti per i consigli