Probar conexión Socket?

Iniciado por CeroX901, 18 Octubre 2011, 02:58 AM

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

CeroX901

Tengo la duda, quiero saber si el SOCKET sigue vivo y hay conexión, pienso ejecutar esa verificación desde un SubProceso que lo haga cada 2 segundos, no he podido encontrar nada. Se me ocurre estar enviado un dato y si el cliente/servidor responde a ese dato quiere decir que está vivo, pero se me hace muy tonta esa solución.

Debe haber alguna función o algo que me lo diga... Salud2!

naderST

#1
Yo una vez lo hice con select(), creo que verificaba si el socket estaba listo para recibir datos y recibía con recv() si daba SOCKET_ERROR quería decir que se había perdido la conexión. De todas maneras no estoy 100% seguro de que funcionaba así pero por ahí va la cosa.

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

Si no te quieres complicar tanto, envía un mensaje cada X segundos y verifica el valor de retorno de send() si este es SOCKET_ERROR la conexión está cerrada.

CeroX901

Habia visto que usaban select(...) pero no me entra para nada, no sé como funciona...   :huh:

CeroX901

Lo arreglé por medio del recv(...), cuando no es capaz de leer ya que no hay conexión retorna un error y este error lo interprete como error de conexion y de esta forma me doy cuenta que no está vivo el socket.