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.
¿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.
[Edito para meter más datos]
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.