Foros del Web » Programación para mayores de 30 ;) » C/C++ »

C++: Socket bloqueantes / no bloqueantes

Estas en el tema de C++: Socket bloqueantes / no bloqueantes en el foro de C/C++ en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 11/09/2006, 06:18
Avatar de javimartinez  
Fecha de Ingreso: marzo-2003
Ubicación: Leganés (Madrid)
Mensajes: 284
Antigüedad: 21 años, 1 mes
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
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:28.