Juan Alejandro Knight wrote
> la funcion select se fija si hay un cambio de estado en un archivo
> como en el paradigma unix todo se implementa con archivos (incluido los
> socket), el select te permite detectar si el socket tiene algo para ser
> leido
> se usa cuando no querés bloquear un hilo (ej: haciendo un accept en el
> server) ya que uno de los parametros es un intervalo de timeout
>
> para ver si hay algo para leer de un socket podes hacer lo siguiente:
>
> int socket_read (int mseg) {
> //se establece el timeout
> struct timeval tiempo;
> tiempo.tv_sec = mseg/1000;
> tiempo.tv_usec = (mseg%1000)*1000;
>
> //inicializacion de estructuras
> fd_set selector;
> FD_ZERO(&selector);
> FD_SET(sockfd,&selector);
>
> //se fija si hay algo para leer o algo enviado
> if (select(sockfd+1,&selector,0,0,&tiempo) < 0)
> return 0; //error
> return (FD_ISSET(sockfd,&selector));
> }
>
> saludos
ESte ejemplo que diste, que ya dicho sea de paso esta buenisimo para
lo que quiero hacer, tambien puede servir en el caso que se caiga el
server, este le envie mensaje al cliente avisando que se ha caido.
O tambien puede ser el caso que el cliente se encuentre saturado (el
server no acepta conexiones) y le informa al ciente que no se ha
podido conectar. (timeout)
_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion