En ese caso lo que quieres hacer es un sistema P2P, la complejidad para hacerlo es mayor que la de un sistema cliente servidor comun y corriente, ya que de una manera muy general se puede decir que en un sistema peer to peer cada nodo es cliente y servidor de los demas, y el 'Servidor' hace las veces de mediador de la conexion entre nodos.
No se si existen ya en C++ librerias para facilitar la creacion de este tipo de aplicaciones, pero si te sirve de algo en java existe JXTA que fue diseñado para tal fin.