У меня есть небольшой портативный инструмент, который подключается к 150 серверам в разных местах, чтобы быстро проверить их состояние.Важно относительно быстро вернуть пользователю статус всех серверов, чтобы инструмент параллельно подключался к серверам, используя неблокирующее соединение, и использовал select () для определения готовности каждого сокета.Использование select () довольно простое, и инструмент в настоящее время готов к сбоям и хорошо работает в Linux.Он работает на Windows XP, но соединения с подавляющим большинством серверов там не завершены.Инструмент переключает вызовы для подключения, чтобы избежать создания того, что выглядит как поток SYN.К одному серверу подключается около 100 мсек.У меня также есть проверка, чтобы убедиться, что FD_SETSIZE не нарушен.У меня есть неподтвержденное свидетельство от кого-то другого, что поведение в более поздних версиях Windows лучше, но я не смог проверить.
Я использовал WinDump, чтобы проверить, что отправляются пакеты syn, и я вижупакеты возвращаются, но select () возвращает ноль, и код просто не может подключиться к большинству существующих серверов, и я могу подключиться к тому же коду в Linux.
ИмеетКто-нибудь видел и решал подобные проблемы со многими неблокирующими подключениями и выбирал на Windows XP?