No, lo del FD_ISSET, está bien, lo que está mal es la condición de detección de que se han desconectado desde el otro extremo de la conexión:
Como te expliqué en el post anterior, cuando se cierra el socket desde el otro extremo, el tamaño de lo leído por read es 0, no 1.
Si te fijas estás cerrando todo el rato el socket desde el server (haces un close después de un read en el server), y como esta condición está mal se queda en el bucle, prueba a cambiar ese 1 por un 0.
Y ahora ya una cosa personal, por favor, si yo te respondo sin faltas de ortografía agradecería que me respondieras sin ellas. Un saludo.
Citar
if(strlen(buffer)==1){
printf("\n>>>>> nos desconectan...\n\t Adios\n");
Como te expliqué en el post anterior, cuando se cierra el socket desde el otro extremo, el tamaño de lo leído por read es 0, no 1.
Si te fijas estás cerrando todo el rato el socket desde el server (haces un close después de un read en el server), y como esta condición está mal se queda en el bucle, prueba a cambiar ese 1 por un 0.
Y ahora ya una cosa personal, por favor, si yo te respondo sin faltas de ortografía agradecería que me respondieras sin ellas. Un saludo.