Que tal:
Analizando los datos que posteas, la soluciones que te podria proponer seria:
1.-Realizar dos programas diferentes, un Servidor que aloje a todos los clientes (O sea todas las maquinas se conecten a el ) y un Programa cliente que seria quien se conecta al servidor.
2.- Un solo programa que te permita la opcion de Host, (O sea que se convierta en servidor, permitiendote tener varios Servidores o Salas de Chat), dentro de este programa tambien visualizar los distintos servidores para elegir con cual conectarse.
Bueno esa es mi opinion ojala y te sirvan mis ideas y te adjunto un codigo para que esto no se quedo en mera teoria.