Что означает код ошибки Windows 1227 (ERROR_ADDRESS_ALREADY_ASSOCIATED)?

 
Предыдущий Следующий
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


Нужно найти другой код? Найти другой код состояния или ошибки.