Miért nem írsz IRC szervert? Ha nem akarod túlbonyolítani, akkor megoldod úgy, hogy kliensenként 2 szál (egyik olvas, másik ír a socketre) + egy accept szál (regeli az új klienseket) + pár egyéb szál (pingelget stb). Az IRC elég egyszerű protokoll, könnyű implementálni. Klienst meg még könnyebb írni.