En primer lugar escribe un servidor de sokets. Tienes ejemplos en los tutoriales. Después escribe el programa cliente, que será la herramienta de chat. Cada vez que alguien escribe algo, se lo envía al servidor de sockets. Cada vez que alguien se conecte debe suscribirse al servidor de sockets (por ejemplo en un array) y cada vez que se desconecte debe suscribirse. Cada vez que el servidor recibe una frase, debe enviar a todos los clientes suscritos la misma. Para que no sea tan complicado en el servidor lo de las suscripciones, puedes hacer que los clientes pregunten al servidor si hay nuevas frases cada medio segundo por ejemplo.