Estoy haciendo una aplicacion con sockets en C, ahora necesito separar 2 canales (si se puede) con select en principio pero no logro separar el canal cuando el socket envia con select(). ¿ Como se cuando esta enviando el socket con la funcion select?. En principio tengo: fd_set rd; //creo el descriptor para usar varios canales FD_ZERO(&rd); FD_SET(sock,&rd); select(sock+1, &rd, 0, 0, 0); if(FD_ISSET(sock,&rd)) { //se supone que tengo datos .... } //¿Ahora como se cuando envio que use un canal? *(Nota:Es un bot para el IRC, no uso el teclado para enviar si no que el bot en principio envia segun los eventos de un canal). salu2
On Wed, 9 Mar 2005 13:12:43 +0100, chakal
Estoy haciendo una aplicacion con sockets en C, ahora necesito separar 2 canales (si se puede) con select en principio pero no logro separar el canal cuando el socket envia con select(). ¿ Como se cuando esta enviando el socket con la funcion select?.
En principio tengo:
fd_set rd; //creo el descriptor para usar varios canales FD_ZERO(&rd); FD_SET(sock,&rd);
select(sock+1, &rd, 0, 0, 0); if(FD_ISSET(sock,&rd)) { //se supone que tengo datos .... } //¿Ahora como se cuando envio que use un canal?
*(Nota:Es un bot para el IRC, no uso el teclado para enviar si no que el bot en principio envia segun los eventos de un canal).
A lo mejor digo alguna pavada, porque no entiendo bien lo que necesitas. Si digo alguna pavada, pido disculpas. Porque no le pones un retorno a la funcion select y luego verificas el retorno algo como: retval = select(sock+1, &rd, 0, 0, 0); if (retval) { printf("Data is available now.\n"); /* FD_ISSET(0, &rd) will be true. */ /*Aca deberias leer el contenido de sock*/ FD_ZERO(&rd); } Saludos SF.-
participants (2)
-
chakal
-
Sebastian Ferro