ппц стока флуда по такой теме. Банальнее не придумаешь на WinSock мож не так оптимально но легко сделать. 1) Создал массив на N элементов. каждый элемент - структура IP, Socket, Число проверок. 2) Создаешь N сокетов 3) переводишь их в неблокирующий режим 4) записываешь их в массив. в пустое место. и записывашь туда IP адрес 5) делаешь коннект с каждого сокета 6) Далее гоняешь цикла 7) Пробегаешься по всем элементам - select на очередной сокет, без тайматуа - если норм коннект, то закрываешь соедиениение и добавляешь что IP и порт открыты - если дисконнект, то закрываешь соедиенение - если таймаут, то увеличиваешь счетчик для этого сокета - если счетчик = Z - макс число проверок. то закрываем сокет - если сокет был закрыт, то на его место в массиве помещается новый, на который тоже уже сделан коннект и так пока не достигнешь конца. После каждлй итерация цикла первого - делать паузу в 50 мс. т.е. если макс таймаут на коннект надо сделать 20 сек, то выходит что Z = 400 самый простой способ. реализуется очень быстро и требует минимум знаний. кода совсем чуть чуть.