| Предыдущий | Следующий |
| ERROR_GRACEFUL_DISCONNECT | ERROR_ADDRESS_NOT_ASSOCIATED |
ERROR_ADDRESS_ALREADY_ASSOCIATED
ERROR_ADDRESS_ALREADY_ASSOCIATED описывает транспортную конечную точку, связь которой с адресом уже установлена. Концептуально это локальная проблема состояния конечной точки: код пытается выполнить этап связывания с адресом для конечной точки, которая уже не является несвязанной.
Сравнение с ошибками bind Winsock
Для обычных сокетов Winsock пользовательского режима bind чаще возвращает WSAEADDRINUSE , когда запрошенные локальные адрес и порт конфликтуют с другим сокетом. Формулировка этого кода Win32 относится к конечной точке, уже владеющей адресом, поэтому полезнее проследить жизненный цикл объекта конечной точки, чем предполагать, что порт занят другим процессом.
Что проверить
- Не вызывает ли логика инициализации или повторного подключения этап связывания или bind дважды.
- Не используется ли объект повторно после частично успешной настройки.
- Не конкурируют ли несколько потоков при инициализации одной конечной точки.
- Каков локальный адрес до и после первого успешного связывания.
Не пытайтесь «исправить» состояние включением повторного использования адреса, пока не доказано, что ошибка действительно вызвана конфликтом адресов. SO_REUSEADDR изменяет поведение bind, но не исправляет автомат состояний приложения, дважды связывающий одну конечную точку.
Microsoft: системные коды ошибок 1000–1299 · Microsoft: bind · POSIX: bind
Нужно найти другой код? Найти другой код состояния или ошибки.