[eside-ghost] duda con select() y descriptores de ficheros
zgor
zgor en int80h.net
Mie Sep 21 12:33:51 CEST 2005
Aupi,
Para E/S asincrona select() es caniero
en http://zgor.int80h.net/files/zbouncer.c creo que utilizaba la select(
para ver si venia datos de un origen (tcp) u de otro (tcp), iwal te
puede servir como ejemplo
La movida creo recordar que es:
1- preparar una lista de descriptores (sets FD_SET ) , ahi metes todos
los descriptores que quieres 'vigilar', pueden ser ficheros, sockets,
etc ... como en UNIX todo es un file, brutal! Incluso para temas tun/tap
yeahhh
2- Bloquear con select
3- Mirar porque se ha desbloqueado, con FD_ISSET miras si determinado
set ha sido el causante del desbloqueo y por lo tanto puedes hacer read(
o recv( lo que quieres
4-... vuelta al bucle
con select puedes vigilar tres tipos de cambio: datos listos para
escribir, para leer o excepcion.
Normalmente te interesara lectura para lo que quieres hacer
esto lo digo de carrerilla, pero creo que por ahi iban los tiros
enga
suerte!
Más información sobre la lista de distribución eside-ghost