Threading and Sockets Problem
Chris
chrisahlers at yahoo.com
Sun Aug 24 20:37:26 EDT 2003
For some reason, I can only connect to my server once. After that, I
keep getting 'connection refused 111' messages).
import socket
import threading
class listen_server(threading.Thread):
def __init__(self, port):
threading.Thread.__init__(self)
self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.socket.bind(("", port))
self.setDaemon(True)
self.start()
def run(self):
self.socket.listen(5)
while 1:
clientsocket, address = self.socket.accept()
print 'connection accepted'
class connection(threading.Thread):
def __init__(self, host = None, port = None):
threading.Thread.__init__(self)
self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.lock = threading.Lock()
self.alive = True
self.connect(host,port)
self.start()
def connect(self, host, port):
self.socket.connect((host,port))
def disconnect(self):
self.lock.acquire()
self.alive = False
self.lock.release()
def run(self):
while 1:
self.lock.acquire()
if not self.alive:
self.lock.release()
break
self.lock.release()
self.socket.close()
print 'socket closed'
#main program:
x = listen_server(11090)
y = connection('localhost', 11090)
y.disconnect()
Any ideas?
More information about the Python-list
mailing list