Первый метод заключается в том, что создаются неблокирующие сокеты и функцией select() проверяют состояние интересующего сокета. Затем из сокетов читаются и записываются доступные данные или данные, которые могут быть помещены в очередь для передачи. Тем не менее, чтобы избежать проблем блокирующих вызовов, функция sеlect() должна быть вызвана с параметром timeout равным нулю, что приводит к неблокирующей операции. Проще говоря, сама функция select() должна быть вызвана так, чтобы не запереть систему, чтобы поддерживать свою очередь сообщений и в то же время позволить сообщениям Windows достигать ядра системы.
Будет сжигаться вхолостую время CPU, в то время как ничего эффективного выполняться не будет - в цикле будет выполняться функция select(). Этот способ слишком не экономно распоряжается ресурсами системы и непригоден в событие - ориентированной операционной системе Windows.