io ho fatto un programmino come intendi tu, sia client sia server. un messenger p2p, ma ha una grosso svantaggio...

se non conosci l'ip o il nome host del server a cui ti vuoi collegare come client (ovvero l'amico con cui vuoi parlare) è un casino trovarlo e ti devi sventagliare tutti gli indirizzi della rete che usi (in lan funziona... ma in internet genererebbe un traffico mostruoso)
Per questo i messenger tipo ICQ si appoggiano a un server.