Comment accepter prise avec délai d'attente

Est il y a un délai compatible soulution à accepter client à l'aide de accept fonction sans paramètre socket non bloquant?

Je sais que je devrais utiliser select fonction de celle-ci, mais ce que je fais mal?

SOCKET NativesAcceptClient(SOCKET s, int timeout)
{
   int iResult;
   struct timeval tv;
   fd_set rfds;
   FD_ZERO(&rfds);
   FD_SET(s, &rfds);

   tv.tv_sec = (long)timeout;
   tv.tv_usec = 0;

   iResult = select(s, &rfds, (fd_set *) 0, (fd_set *) 0, &tv);
   if(iResult > 0)
   {
      return accept(s, NULL, NULL);
   }
   else
   {
     //always here, even if i connect from another application
   }
   return 0;
}

Comment résoudre ce problème?
Merci!

non, le délai est de 10
Voir ma solution ci-dessous?
est-il immédiatement popping out de sélectionner ou est-ce qu'il attend 10 secondes avant de sauter (si vous ne vous connectez pas à elle)? il semble ok (à part le s+1 mentionné pour les plateformes non-Windows), autre chose est de travers...
avez-vous jamais résoudre ce problème? Si oui, pourriez-vous sélectionner une réponse ou écrivez l'un de vos propres?

OriginalL'auteur Boris | 2012-12-26