| Предыдущий | Следующий |
| EPROTO | ENETUNREACH |
EADDRINUSE
Что означает EADDRINUSE
EADDRINUSE означает, что запрошенная локальная комбинация address/port уже занята или конфликтует с существующим socket binding.
Что проверить
- Перечислите sockets, уже bound/listening на этот port.
- Проверьте
SO_REUSEADDR/SO_EXCLUSIVEADDRUSEи порядок их установки. - Для IPv6 учтите dual-stack binding на
::, который может покрывать IPv4.
Как исправлять
Освободите конфликтующий listener, выберите другой port или настройте reuse согласно модели сервера. Не включайте reuse вслепую там, где требуется единственный владелец endpoint.
Для серверов с частыми перезапусками отдельно проверьте, остаётся ли конфликтующий listener в другом процессе, а не только соединения в TIME_WAIT: TIME_WAIT сам по себе обычно не объясняет занятый listening endpoint при корректной socket policy.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.