Temporizador

oeca
07 de Febrero del 2006
Hola
Estoy haciendo un trabajo para la U, programación de sockets.
Mi problemas es como controlar (de forma sencilla) que el servidor pueda cortar la comunicación si después de un Tiempo el cliente no ha efectuado solicitud.
Si alguien conoce un método sencillo, le agradecería me ayudar.

Gracias...

[email protected]
07 de Febrero del 2006
usa la funcion select de sys/time.h

chuidiang
07 de Febrero del 2006
La funcion alarm() o setitimer() te darán un aviso al cabo del tiempo que tu digas.

Puedes lanzar una alarm() y meterte luego en el read() del socket, bloqueado. En ese momento puede pasar dos cosas:

- Si el cliente hace una peticion, el read() sale, reseteas la alarm() y atiendes al cliente. Luego vuelves a lanzar la alarm() y te vuelves a meter en el read().

- Si el cliente no hace la peticion, saltara la alarm(), tu read() se saldra dando un error -1. Cierras la conexion del cliente y se acabo.

Si quieres algún ejemplo de como funciona alarm() y setitimer(), puedes mirarlo en mi pagina

www.geocities.com/chuidiang

Se bueno.