Buenos dias.
Estoy tratando de hacer un programa para conectarse a internet y recibir los datos de una URL por medio de los sockets. Todo programado a lo "bestia". (Usando los sockets directamente sin librerias que me lo faciliten)
El caso es que haciendo pruebas me he dado cuenta que el programa tarda muchisimo en darse cuenta que la conexion se ha perdido. Supongo que eso es bueno para conexiones lentas. Para que la espera prolongada de una respuesta con una conexion lenta no sea sinonimo de desconexion. Pero yo quiero que no tarde tanto. Sobre todo cuando descargo una pagina web desde una URL cuyo header no indica el tamaño de lo que va a descargar.
¿Como detecto la desconexion del socket o la perdida de la conexion del equipo a internet?
Para las pruebas uso ubuntu, programo en C++, uso el comando "select()" para usar sockets no bloqueantes (este comando es totalmente nuevo para mi) y uso el movil para dar wifi al portatil. Para forzar la perdida de conexion del programa apago la zona wifi del movil. Aún no he logrado que esta forma de forzar la desconexion haga que mi programa deje de intentar seguir recibiendo datos. (Lo he dejado en bucle con "select()" y un contador durante mas de 10 minutos. No se ha bloqueado, pero tampoco ha detectado la perdida de la conexion.)
Un saludo y gracias de antemano.