Tengo una aplicación que necesita enviar datos a un servidor en algún momento. La manera más fácil sería cerrar la conexión y luego abrirla nuevamente cuando quiero enviar algo. Pero quiero mantener la conexión abierta así que cuando quiero enviar datos, primero compruebe la conexión utilizando esta función:Compruebe si el socket está conectado o no
bool is_connected(int sock)
{
unsigned char buf;
int err = recv(sock,&buf,1,MSG_PEEK);
return err == -1 ? false : true;
}
La parte mala es que esto no funciona. Se cuelga cuando no hay datos para recibir. ¿Que puedo hacer? ¿Cómo puedo verificar si la conexión aún está abierta?
http://stackoverflow.com/questions/4142012/how-to-find-the-socket-connection-state-in-c – BoBTFish