Salve a tutti, ho realizzato una CHAT multiutente utilizzando S.0. Linux, thread e socket.
Ho un problema da cui non riesco a venirne a capo:
qualora un utente si disconnetta in maniera impropria, tipicamente premento CTRL-c per terminare l'applicazione,
come fa il singolo thread del server a lui associato a determinare che è uscito???
Ho provato a verificare ad esempio se il risultato della read(la funzione che legge i dati del client dal socket) produce
risultati negativi, ma non è questa la soluzione.
Io avevo pensato di incaricare il client di intercettare il segnale SIGINT (pressione dei tasti CTRL-C) e in tal caso di inviare quest'informazione al server
che la potesse quindi manipolare, ma la funzione signal non permette di fare questo, o meglio, non so come passare altri parametri, oltre a lnumero di segnale,
a questa funzione.
Mi aiutate per piacere fornendomi anche soluzioni alternative???
Vi ringrazio.

Rispondi quotando

