Следающий код:
// основное тело программы (main)
FD_ZERO(&rfds);
FD_SET(ClientSockets[FreeSocketIndex + 1], &rfds);
if (nfds < ClientSockets[FreeSocketIndex + 1]) nfds = ClientSockets[FreeSocketIndex + 1];
FreeSocketIndex++;
// нить, которая обменивается через эти сокеты
while (TRUE)
{
for (socketIndex = 0; socketIndex < FreeSocketIndex; socketIndex++)
{
FD_ZERO(&rfds);
FD_SET(ClientSockets[socketIndex], &rfds);
}
tv.tv_sec = 0; // wait for five seconds
tv.tv_usec = 500000;
result = select(nfds + 1, &rfds, NULL, NULL, &tv);
if (result && (result != -1))
{
....
}
else {
printf("ignore ...\n");
}
}