<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Aug 9, 2011, at 8:03 AM, Johannes Ebersold wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>I am facing a problem with the binding of the port of the RTSP-Server. The Port used  by the server is not freed correctly, although the applications ends correctly is not killed using ctrl-c, as described here:http://www.mail-archive.com/live-devel@lists.live555.com/msg06837.html</div></blockquote><div><br></div>Actually, if you read the follow-up messages in that thread, you'll see that the port (and socket) used by the server *is* freed correctly.  However, the TCP protocol implementation (in the operating system) deliberately waits a few seconds afterwards before it can mark the TCP connection as being completely closed (and thus before the port can be reused by another server application (or rerunning the same server application).</div><div><br></div><div>For more information, see</div><div><span class="Apple-tab-span" style="white-space:pre">   <a href="http://www.unixguide.net/network/socketfaq/2.7.shtml">http://www.unixguide.net/network/socketfaq/2.7.shtml</a></span></div><div><span class="Apple-tab-span" style="white-space:pre">        <a href="http://developerweb.net/viewtopic.php?id=2941">http://developerweb.net/viewtopic.php?id=2941</a></span></div><div>and</div><div><span class="Apple-tab-span" style="white-space:pre">    <a href="http://www.ssfnet.org/Exchange/tcp/tcpTutorialNotes.html">http://www.ssfnet.org/Exchange/tcp/tcpTutorialNotes.html</a></span></div><div>in particular:</div><div><span class="Apple-tab-span" style="white-space:pre">   </span>"The main thing to recognize about connection teardown is that a connection
in the TIME_WAIT state cannot move to the CLOSED state until it has waited
for two times the maximum amount of time an IP datagram might live in the
Internet. The reason for this is that while the local side of the connection
has sent an ACK in response to the other side's FIN segment, it does not
know that the ACK was successfully delivered. As a consequence this other
side might re transmit its FIN segment, and this second FIN segment might
be delayed in the network. If the connection were allowed to move directly
to the CLOSED state, then another pair of application processes might come
along and open the same connection, and the delayed FIN segment from the
earlier incarnation of the connection would immediately initiate the termination
of the later incarnation of that connection."</div><div><br></div><div>There *is* a potential hack (involving SO_LINGER, as noted in the original thread) that could eliminate this delay.  However, it's non-portable, and introduces the (albeit remote) possibility of incorrect behavior.  So, I won't be adding this to the code.</div><div><br></div><div>If you close a server, just be patient (and wait a few seconds) before trying to restart it again.</div><br><br><div>
<span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; ">Ross Finlayson<br>Live Networks, Inc.<br><a href="http://www.live555.com/">http://www.live555.com/</a></span></span>
</div>
<br></body></html>