socket bindings

Nathan Clegg nathan at islanddata.com
Tue Jun 15 20:44:47 CEST 1999


I have a server application that binds itself to a specified port and
waits for connections.  It handles all connections fine and quits cleanly
after closing all of the connected sockets as well as the listening
socket.  However, if I start the application again, it will die, saying
the address is already bound to.  If I wait 2-3 minutes, the port will
become available again.  I can "solve" this by implementing a loop that
continues until the socket binds successfully, but this seems a little
klunky.  Can anyone tell me why the socket might not be correctly
releasing itself?  Relevant code follows:

    server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    connected = None
    
    while not connected:
        try:
            server.bind('', PORT)
            connected = 1
        except socket.error:
            time.sleep(.1)
    server.listen(128)  # let the OS determine the limit
    print 'Listening...'

# code making connections deleted

    server.close()



----------------------------------
Nathan Clegg
 nathan at islanddata.com






More information about the Python-list mailing list