| Предыдущий | Следующий |
| WSAEBADF | WSAEFAULT |
WSAEACCES
WSAEACCES является локальной ошибкой политики или разрешений, а не ответом удалённого узла. Она часто возникает, когда приложение пытается отправить данные на широковещательный адрес, не включив SO_BROADCAST, либо когда bind конфликтует с адресом, который Windows считает эксклюзивно зарезервированным.
Отличие от ошибок «адрес уже используется»
WSAEADDRINUSE обычно означает, что выбранная конечная точка уже занята. WSAEACCES означает, что сама операция запрещена при текущей конфигурации. Например, общий параметр повторного использования сокета не отменяет исключённый диапазон портов или эксклюзивное владение адресом другим компонентом.
Полезные проверки
- Запишите локальный адрес, порт, протокол, параметры сокета и то, был ли вызов
bind,connect,sendилиsendto. - Для широковещательного трафика явно включите
SO_BROADCASTи убедитесь, что назначение действительно должно быть широковещательным. - При ошибке bind проверьте исключённые диапазоны портов, слушающие процессы, резервирования служб и параметры эксклюзивного адреса, прежде чем добавлять слепые повторы или флаги повторного использования.
Microsoft: send · Microsoft: ошибка bind для исключённого порта · The Open Group: параметры сокетов и конечные точки
Нужно найти другой код? Найти другой код состояния или ошибки.
