I get 'Address already in use' errors when using sockets. Am I properly shutting down all connections? What am I doing wrong? I've looked at the examples and I can't figure out what I'm missing. I already read the Python Socket HOWTO at http://py-howto.sourceforge.net/sockets/sockets.html but I seem to be doing everything right.
Here is the server: #! /usr/bin/python import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind(('localhost', 52340)) s.listen(1) conn, addr = s.accept() data = conn.recv(1024) print "data:", data conn.close() s.close() print "server closed" Here is the client: #! /usr/bin/python import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect(('localhost', 52340)) s.send('test string') s.close() print "client closed" Here is a convenience script to run both (although I get the same error when I run in separate shells): #! /bin/sh python server.py & sleep 1 python client.py Here is the error: --- first time, runs just fine --- $ source ./runboth data: test string server closed client closed [1]+ Done python server.py --- second time (or sometimes third time), gives error --- $ source ./runboth Traceback (most recent call last): File "server.py", line 4, in ? s.bind(('localhost', 52340)) File "<string>", line 1, in bind socket.error: (98, 'Address already in use') [1]+ Exit 1 python server.py Traceback (most recent call last): File "client.py", line 4, in ? s.connect(('localhost', 52340)) File "<string>", line 1, in connect socket.error: (111, 'Connection refused') -- http://mail.python.org/mailman/listinfo/python-list