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
--------------------------------------------------
From: "Leonardo Rios" <[EMAIL PROTECTED]>
Sent: Sunday, May 04, 2008 10:25 PM
To: <[email protected]>
Subject: [Prog] usando select en socket
Estoy haciendo una aplicacion en c del tipo cliente-servidor usando
las funciones send() y recv() para transmitir mensajes entre ellos.
Leyendo el libro de Inux_Network_Programming (Stevens) me tope con
esta funcion select. Este mencionaba que se relaciona con el Kernel y
la lectura y escritura de los descriptores. Entonces cuando se usaria
esta funcion.
Ademas de esto en que momento adecuado se usaria un int
FD_ISSET(int fd, fd_set *fdset);
void FD_SET(int fd, fd_set *fdset);
void FD_ZERO(fd_set *fdset);
segun man select.
Gracias
--
/* Leonardo Rios
* rios[dot]lj[at]gmail[dot]com
*/
_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion
No virus found in this incoming message.
Checked by AVG.
Version: 8.0.100 / Virus Database: 269.23.8/1414 - Release Date:
04/05/2008 12:31 p.m.
__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
¡Abrí tu cuenta ya! - http://correo.yahoo.com.ar
_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion