Grazie mille della risposta!!!!

La chat effettivamente rispecchia il protocollo delle due palline.

Ho pensato a due socket (inizialmente pensavo anchio a uno) solo perchè ogni volta che un thread lo usa (in ricezione o in uscita) dovrebbe avere l'accesso esclusivo su di esso e quindi l'altro thread dovrebbe aspettare che finisca, anche se non ero sicuro di questa cosa visto che usano i 2 stream separati come hai scritto.


Per l'invio dei messaggi agli altri trhead avevo pensato ad un array static di utenti condiviso tra tutti i trhead.Ogni utente ha una stringa che viene scritta in base ai messaggi ricevuti dai singoli thread e dagli utenti presenti nella stessa stanza.(quando un utente entra in una stanza gli viene associata). Quando il thread da output del client e utente specifico rileva che la stringa dell'utente non è di lunghezza 0 (ad esempio) allora lo invia in uscita e azzera la stringa.Il tutto con i relativi accessi esclusivi da parte dei thread.

Darò un'occhiata anche alle code per farmi un'idea di come si potrebbe implementare
quello che hai detto alla fine.

Satsha.