int nRetour; fd_set fdsetRecv; timeval attendre = {1, 0}; // {sec, nSec} FD_ZERO(&fdsetRecv); FD_SET(sock, &fdsetRecv); // on a un SOCKET nommé sock // On attend pdt 1 sec pr voir si des infos sont en attente de lecture sur le SOCKET. Ca agit comme un sleep, le main est rendue aux autres threads nRetour = select(FD_SETSIZE, &fdsetRecv, NULL, NULL, &attendre); // si oui if(nRetour > 0) { // fais le recvfrom ici car des données demandent à etre lue } // ici verif de fin de thread