Ciao! innanzitutto grazie per le risposte.
Allora, ho inziato a fare una parte client e una parte server (perchè più easy).

ora vi chiedo, poi essendo p2p, ogni utente dovrà fare allo stesso tempo sia da client che da server. giusto?
come smisto il rimanere in ascolto? e effettuare un eventuale connessione? devo fare un fork()?
e devo fare un altro fork() per inviare e ricevere messaggi? cioè devo fare un processo che gestisce gli invii e uno che gestisce le ricezioni?

altra cosa che non mi è ben chiara. A->B (A crea una socket e ascolta, e B si connette).
A può inviare messaggi a B... se B vuole mandare messaggi ad A (B->A) deve aprire e farsi accettare una sua socket o può usare la stessa creata per A->B?

Non so se è un bene o un male, ma prevedo di mandare solo messaggi in broadcast, cioè se ci sono 3 utenti tutti vedono tutti i messaggi scambiati tra tutti.

Grazie!