¿Qué herramientas puedo usar para crear un programa de chat simple tolerante a fallas en C?

Mi respuesta a la pregunta que hizo es vi, gcc y quizás make. Sin embargo, sospecho que eso no te da la información que estás buscando. ¿Puedes ser mas específico?

Veo que agregaste algunos detalles, gracias, veré si puedo aportar ideas útiles.

Asumiré que su sistema está utilizando una arquitectura cliente / servidor donde cada persona que chatea está hablando con un servidor centralizado.

Puedo ver dos tipos de fallas contra las cuales sería razonable proteger. Una es que el servidor falla, la otra es que los clientes pierden conectividad y necesitan restablecerla.

Resolvería el bloqueo del servidor ejecutando 2 (o más) servidores y hacer que los clientes se conectaran a todos ellos. Luego, configure su protocolo de chat para que pueda enviar un mensaje a través de cualquiera de los servidores disponibles, y una detección de errores que se da cuenta cuando un servidor deja de responder y cambia a otro.

En cuanto al problema de reconexión, el servidor podría dar a cada cliente un identificador entero cuando el cliente se conectó. Luego, si el cliente perdió la conectividad y tuvo que restablecerla, podría enviar ese identificador de regreso para que el servidor supiera que estaba tratando de restablecer una conexión perdida y de qué conexión se trataba.