Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/09/2006, 06:18
Avatar de javimartinez
javimartinez
 
Fecha de Ingreso: marzo-2003
Ubicación: Leganés (Madrid)
Mensajes: 284
Antigüedad: 22 años
Puntos: 1
Pregunta C++: Socket bloqueantes / no bloqueantes

Hola

Estoy intentando hacer una función que básicamente consta de un bucle del siguiente tipo

Código:
CSocket ss;

...

while (1){
    if (!ss.Accept(sc)) {
        //Hacer algo
    }else{
        //Hacer otra cosa
    }

...
} //Fin while
En dicho bucle tengo el accept bloqueante. Lo que me gustaría es que dicho accept no esté bloqueado eternamente, si no que si tras 30 segundos (por ej) no ha recibido ninguna conexión se desbloquee y sigua ejecutándose el código.

La primera forma que se me ocurre es hacer el socket no bloqueante, pero eso puede traer problemas de procesador, ya que estaría haciendo constantemente un while.

¿Sabeis si hay alguna forma de hacer que un socket se desbloquee tras X segundos esperando una conexión? (socket TCP)

Gracias y un saludo
__________________
Javi Martínez

Web: Acertijolandia Blog: A Entretenerse