Problema sockets

0 Respuestas
anterma
User offline. Last seen 48 semanas 2 días ago. Offline
Registrado: 06/10/2009

Hola,
Tengo un problemilla con sockets en Linux, a ver si alguien me puede echar una manilla.
Tengo dos programas, un cliente y un servidor, que se conectan mediante conexión tcp. El cliente se conecta al servidor, le envia un mensaje y ahi finaliza el programa.El servidor cuando recibe un mensaje crea una respuesta que ha de enviar al cliente, el problema es que como el cliente no ha esperado a recibir la respuesta este ha cerrado la conexión provocando que el servidor muera al ejecutar el write. He probeado a controlarlo utilizando try{ write(sd, &msj, 1)}catch(int){printf("ERROR")} pero aun asi sigo teniendo el mismo problema.
He probado a ejecutar setsockopt(sd, SOL_SOCKET, SO_KEEPALIVE, &optval, sizeof(optval)) antes de hacer el bind en el servidor y sigo teniando el mismo problema.
¿Hay alguna forma de solucionarlo? ¿Cómo puedo controlar el servidor que la conexión está abierta antes de realizar el write?¿..?

Saludos y muchas gracias.