Problema Sockets en Linux, c++

i52cacaj
06 de Agosto del 2003
he hecho dos programas cliente/servidor via socket. El servidor es multiusuario pero cuando el primero que entra en el servidor y el servidor le esta dando servicio y esperando que le envie algo y el usuario da a `CONTROL-C el servidor se apaga directamente.

Alguien sabe porque y como resolverlo?

saludos a todos

chuidiang
06 de Agosto del 2003
Supongo que al apretar ctrl-c se sale el cliente y como consecuencia, el servidor "se muere".
El servidor puede estar en un read() o un write() (o la funci贸n equivalente que est茅s utilizando).
Si es un read() y el cliente se sale, read() devuelve un cero. Debes tratar ese valor de retorno para cerrar la conexi贸n y seguir atendiendo a otros clientes.
Si es un write() y el cliente se sale, el servidor recibe una se帽al SIGPIPE que por defecto hace que se salga el programa. Debes capturarla y en el c贸digo de captura de esa se帽al cerrar la conexi贸n y seguir con otros clientes.
En mi pagina www.geocities.com/chuidiang tienes algo de captura de se帽ales.
Se bueno.