| Anterior | Siguiente |
| EMSGSIZE | ENOSR |
EADDRINUSE
Qué significa EADDRINUSE
EADDRINUSE aparece cuando bind() no puede reservar el endpoint local solicitado. En sockets de Internet el conflicto afecta a la combinación de dirección y puerto; en sockets UNIX puede ser la ruta del socket. El errno no identifica por sí solo qué proceso posee el recurso.
En servidores suele significar que ya existe otro listener, pero un reinicio rápido también puede chocar con estado TCP todavía activo. Las opciones de reutilización como SO_REUSEADDR tienen semántica dependiente de la plataforma y no deben activarse como una receta automática.
Qué comprobar
- Lista listeners y procesos para la familia, dirección y puerto exactos; una escucha IPv4 y una IPv6 pueden interactuar de forma distinta según la configuración.
- Comprueba si systemd, un supervisor o un mecanismo de socket activation creó el socket antes que la aplicación.
- En sockets UNIX, averigua si la ruta pertenece a un proceso vivo o es una entrada obsoleta antes de eliminarla.
- Revisa que el proceso anterior realmente termine y que no queden descriptores heredados durante el reinicio.
Referencias técnicas
¿Buscas un código diferente? Buscar otro código de estado o error.