Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: PeKiN en 14 Junio 2011, 15:54 pm



Título: Deteccion perdida de conexion socket en C
Publicado por: PeKiN en 14 Junio 2011, 15:54 pm
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!


Título: Re: Deteccion perdida de conexion socket en C
Publicado por: ahkbar87 en 14 Junio 2011, 17:13 pm
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


Título: Re: Deteccion perdida de conexion socket en C
Publicado por: PeKiN en 14 Junio 2011, 17:27 pm
Se me olvidó especificar que el entorno de programación es Linux. Gracias igualmente por la respuesta!


Título: Re: Deteccion perdida de conexion socket en C
Publicado por: Danyel_Casvill en 14 Junio 2011, 17:42 pm
http://es.tldp.org/Tutoriales/PROG-SOCKETS/prog-sockets.html

Espero te sirva..


Título: Re: Deteccion perdida de conexion socket en C
Publicado por: PeKiN en 14 Junio 2011, 17:56 pm
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()".