| Предыдущий | Следующий |
| WSAEDISCON | WSAECANCELLED |
WSAENOMORE
WSAENOMORE обозначает конец перечисления пространства имён Winsock, выполняемого с помощью WSALookupServiceNext. Это не признак сбоя поставщика пространства имён или тайм-аута сетевого запроса: дескриптор поиска просто больше не может вернуть результатов.
Устаревший дублирующий код
Winsock 2 определяет оба значения WSAENOMORE и WSA_E_NO_MORE. Microsoft описывает первое как конфликтующее устаревшее значение и рекомендует приложениям проверять оба для совместимости с поставщиками пространств имён. Новая логика должна считать их одним и тем же конечным состоянием перечисления.
Правильная обработка цикла
- Вызывайте
WSALookupServiceNextдо получения результата или ошибки. - При любом из кодов «больше нет» штатно завершайте перечисление.
- Вызывайте
WSALookupServiceEndдля освобождения дескриптора поиска. - Не повторяйте тот же вызов
Nextв плотном цикле в ожидании нового элемента.
Сравните этот код с WSANO_DATA, где имя может существовать, но данные не соответствуют запрошенным ограничениям. Конец перечисления и отсутствие соответствующих данных — разные состояния.
Microsoft: WSALookupServiceNext · Microsoft: коды ошибок Winsock
Нужно найти другой код? Найти другой код состояния или ошибки.
