Como explicitamente liberar a porta EADDRINUSE para vinculá-lo novamente?

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

Como liberar manualmente manualmente a porta depois de um programa que não seja REUSEADDR?

Eu não quero esperar ou alterar a porta todas as vezes ...

    
por Vi. 24.04.2013 / 13:53

1 resposta

0

Infelizmente, no Linux não há nada que você possa fazer (além de consertar o código para definir SO_REUSEADDR ). De 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.
    
por 26.04.2013 / 10:16