Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: CeroX901 en 18 Octubre 2011, 02:58 am



Título: Probar conexión Socket?
Publicado por: CeroX901 en 18 Octubre 2011, 02:58 am
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!


Título: Re: Probar conexión Socket?
Publicado por: naderST en 18 Octubre 2011, 05:56 am
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 (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.


Título: Re: Probar conexión Socket?
Publicado por: CeroX901 en 18 Octubre 2011, 16:04 pm
Habia visto que usaban select(...) pero no me entra para nada, no sé como funciona...   :huh:


Título: Re: Probar conexión Socket?
Publicado por: CeroX901 en 18 Octubre 2011, 21:46 pm
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.