Deteccion perdida de conexion socket en C

Iniciado por PeKiN, 14 Junio 2011, 15:54 PM

0 Miembros y 1 Visitante están viendo este tema.

PeKiN

Hola! me gustaría saber si existen funciones o mecanismos para detectar fácilmente si, en una conexión mediante sockets TCP, se ha perdido la conexión por caida repentina o cierre del otro extremo. Seria una situación del estilo Servidor con varios Clientes, los Clientes se conectan y se registran en una base de datos y quedan conectados. El problema surge si se pierde la conexión de forma fortuita con el cliente (un corte de luz en el cliente, por ejemplo), qué forma sencilla y eficaz podría implementarse para detectar y eliminar al cliente de dicho registro.

Un saludo!

ahkbar87

Creo que la misma función recv puedes usar para saber el estado de la conexión.

http://msdn.microsoft.com/en-us/library/ms740121(v=vs.85).aspx

O si no usar SOCK_DGRAM con tus propios mecanismos, deben existir otras, pero no las conozco,

saludos

PeKiN

Se me olvidó especificar que el entorno de programación es Linux. Gracias igualmente por la respuesta!


PeKiN

Gracias danyhack, pero la programación de sockets la controlo, lo que busco va un poco más allá y se trata de detectar un socket caido sin ser cerrado mediante el clásico "close()".