¿Cómo liberar explícitamente el puerto EADDRINUSE para enlazarlo de nuevo?


0
$ testOnDemandRTSPServer
... Play this stream using the URL "rtsp://192.168.90.2:8554 ...
^C
$ testOnDemandRTSPServer
Failed to create RTSP server: bind() error (port number: 8554): Address already in use

¿Cómo liberar manualmente el puerto de forma explícita después de un programa que no sea REUSEADDR?

No quiero esperar o cambiar de puerto cada vez que ...


Respuestas:


0

Desafortunadamente, en Linux no hay nada que puedas hacer (aparte de arreglar el código para configurar SO_REUSEADDR ). Desde man 7 socket:

Linux will only allow port reuse with the SO_REUSEADDR option when this
option was set both in the previous program that performed a bind(2) to
the port and in the program that wants to reuse the port. This differs
from some implementations (e.g., FreeBSD) where only the later program
needs to set the SO_REUSEADDR option. Typically this difference is invisible,
since, for example, a server program is designed to always set this option.

1
¿Soy yo quien molesta? Address already in use mensaje durante el desarrollo? ¿Tal vez alguien hackeó un módulo del kernel que simplemente limpia todos los sockets TIME_WAIT?
Vi.
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.