C/Visual C - Problema con redes. AYUDA!

 
Vista:

Problema con redes. AYUDA!

Publicado por MorgoZ (5 intervenciones) el 10/05/2003 14:10:43
Hola a todos!

Necesito saber como hacer qeu un "recv" no sea bloqueante; es decir, que entre un servidor y un cliente, cuando el servidor ejecute el recv para esperar un mensaje del cliente, que el server no se quede ahí esperando, es decir, que espere un tiempo y si no recive nada que siga con el código.

A ver si me podeis ayudar. Gracias!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema con redes. AYUDA!

Publicado por chuidiang (677 intervenciones) el 10/05/2003 22:01:45
A pesar de que te lo cuento en unix, las funciones para sockets, por lo que yo sé, son muy similares en visual c++ y unix, así que seguramente existen tal cual.

En unix hay la función fcntl() que permite configurar los descriptores de fichero con distintas opciones, una de ellas que no sea bloqueante la lectura si no hay datos. No se si en visual c++ existe esa función. Echa un ojo.
Seria algo así como
fcntl (socket, F_SETFL, O_NONBLOCK); (te lo pongo de memoria, no te fies).

Otra opción (también en unix) es el uso de la funcion select(). Esta función avisa cuando hay algo disponible para leer, asi que cuando hagas el recv() tendrás la seguridad de no quedarte bloqueado.
En mi página web tienes un ejemplo de como usar esta función.

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar