I tried to write a simple asyncore-based server code, then I used a simple client to establish a connection with it. Once the client is connected server raises the following exception:
--- snippet --- C:\Documents and Settings\billiejoex\Desktop\test>test.py []127.0.0.1:3003 Connected. Traceback (most recent call last): File "C:\Documents and Settings\billiejoex\Desktop\test\test.py", line 40, in <module> asyncore.loop(timeout=1) File "C:\Python26\lib\asyncore.py", line 191, in loop poll_fun(timeout, map) File "C:\Python26\lib\asyncore.py", line 132, in poll read(obj) File "C:\Python26\lib\asyncore.py", line 72, in read obj.handle_error() File "C:\Python26\lib\asyncore.py", line 68, in read obj.handle_read_event() File "C:\Python26\lib\asyncore.py", line 384, in handle_read_event self.handle_accept() File "C:\Documents and Settings\billiejoex\Desktop\test\test.py", line 33, in handle_accept Handler(sock_obj) File "C:\Documents and Settings\billiejoex\Desktop\test\test.py", line 9, in _ _init__ certfile='keycert.pem') File "C:\Python26\lib\ssl.py", line 466, in wrap_socket ssl_version=ssl_version, ca_certs=ca_certs) File "C:\Python26\lib\ssl.py", line 103, in __init__ cert_reqs, ssl_version, ca_certs) ssl.SSLError: [Errno 2] _ssl.c:429: The operation did not complete (read) --- /snippet --- This is the server code I used. Note that 'keycert.pem' is the certificate file I found in the test directory. --- snippet --- import asyncore, asynchat, socket, ssl class Handler(asyncore.dispatcher): def __init__(self, conn): asyncore.dispatcher.__init__(self, conn) self.socket = ssl.wrap_socket(conn, server_side=True, certfile='keycert.pem') self.send('hi there') def readable(self): if isinstance(self.socket, ssl.SSLSocket): while self.socket.pending() > 0: self.handle_read_event() return True def handle_error(self): raise class Server(asyncore.dispatcher): def __init__(self): asyncore.dispatcher.__init__(self) self.create_socket(socket.AF_INET, socket.SOCK_STREAM) self.bind(('', 54321)) self.listen(5) def handle_accept(self): sock_obj, addr = self.accept() print "[]%s:%s Connected." %addr Handler(sock_obj) def handle_error(self): raise Server() asyncore.loop(timeout=1) --- snippet --- _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com