> Можешь и придираться, не я же это писал)
Придираюсь :)))
Да вобщем-то под Юникс (покрайней мере под Linux) практически также. А в
man select прекрасный пример приведен, но если товарисчи не смогли с ним
разобраться, то боюсь твой пример их только еще больше запутает :)))
P.S.
Вот пример из man select. Товарищи, объясните, ну что в нем непонятного
та? Для сетевой проги вместо select(1,...) используйте select(fd+1,...),
где fd это дескриптор полученный вызовом функции connect если клиент,
или вызом accept если сервер:
#include <stdio.h>
#include <sys/time.h>
#include <sys/types.h>
#include <unistd.h>
int main(void)
{
fd_set rfds;
struct timeval tv;
int retval;
/* Watch stdin (fd 0) to see when it has input. */
FD_ZERO(&rfds);
FD_SET(0, &rfds);
/* Wait up to five seconds. */
tv.tv_sec = 5;
tv.tv_usec = 0;
retval = select(1, &rfds, NULL, NULL, &tv);
/* Don't rely on the value of tv now! */
if (retval)
printf("Data is available now.\n");
/* FD_ISSET(0, &rfds) will be true. */
else
printf("No data within five seconds.\n");
return 0;
}