sysctl на эту тему - net.inet.tcp.msl ioctlsocket(sockfd1, FIONBIO, &bTrue); sndto = sendto(sockfd1,buff,len_buff,NULL,(const struct sockaddr *)&client_addr1,sizeof(struct sockaddr)); // посылаем широковещательный запрос, получаем одновременно // туеву хучу ответов, разбираем их: int rc = 1 ; int siz = sizeof(recv_addr1); while (rc >0) { rc = select(0, &stFDSet, NULL, NULL, &stTimeVal); if (rc == SOCKET_ERROR) // орем на всю систему - ошибка сокета; if (rc == 0) flTimeOut = true; // timeout больше ничего не пришло, хорош ждать. if (rc > 0) recvfrom(sockfd1,buff_recv[count_buff],sizeof(buff_recv[count_buff]),0, (struct sockaddr *)&recv_addr1,&siz); // принимаем и заполняем массив буферов. }