socket.bind
Jp Calderone
exarkun at intarweb.us
Sat Oct 4 22:54:18 EDT 2003
More information about the Python-list mailing list
Sat Oct 4 22:54:18 EDT 2003
- Previous message (by thread): socket.bind
- Next message (by thread): passing argumetns to threading.Thread
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Sun, Oct 05, 2003 at 01:00:46PM +1300, sashan wrote: > I'm writing a program using sockets. I'm binding to a port like this: > > PORT = 5000 # Arbitrary non-privileged port > s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) > s.bind((HOST, PORT)) > s.listen(1) > > Now sometimes the rest of the program crashes later for whatever reason. > As a result this leaves a socket bound to port 5000. When I try to run > my program again it crashes at > > s.bind((HOST, PORT)) > > saying that the port is still in use. How do I unbind that port? I've > killed the previous program using the system monitor in Gnome. > Python programs don't crash (at least, hardly ever -- if the interpreter segfaults, you should file a bug report!). So, it's always possible to clean up resources you allocate. In this case, setting SO_REUSEADDR is a good solution to avoid needing to clean up, but for other resources you allocate, you might want to read up on the try/finally construct (http://python.org/doc/tut/node10.html, especially the last section), or use try/except and call a cleanup function in the except clause before re-raising the original exception. Jp
- Previous message (by thread): socket.bind
- Next message (by thread): passing argumetns to threading.Thread
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list