[Live-devel] RTSP server socket bind error

Ross Finlayson finlayson at live555.com
Thu Jul 21 07:16:39 PDT 2011


>I run the 'testH264VideoStreamer' app and view the video with an 
>RTSP client (eg VLC).
>If I kill 'testH264VideoStreamer' while the client is connected and 
>then try to run it again
>straight away I get the following error:
>
>      Failed to create RTSP server: bind() error (port number: 8554): 
>Address already in use
>
>I ran netstat and found that the cause of this error is that the 
>socket is in the TIME_WAIT
>state. You need to wait until the TIME_WAIT timeout period elapses.
>I found a way around this by editing the setupStreamSocket() 
>function to set the
>SO_LINGER option with a timeout of 0 on the socket to force the 
>server to abort the
>connection. Would that be a useful change to the code (maybe with a 
>linger timeout > 0 )
>or would it cause other side effects?

I'm not sure.  This web page
	http://developerweb.net/viewtopic.php?id=2982
suggests that SO_LINGER is not very portable, and might not always do 
what you want.  (Other references (e.g., Stevens' book) also notes 
the (albeit remote) possibility of data corruption if you were to 
restart a server before the TIME_WAIT period ends.)  So I'd be 
reluctant to add this to the code just to satisfy people's 
impatience.  Instead, just wait a few seconds, and you'll be able to 
restart your server.
-- 

Ross Finlayson
Live Networks, Inc.
http://www.live555.com/


More information about the live-devel mailing list