At the following url.. http://www.nightmare.com/medusa/programming.html
The author has the following code for a simple HTTP client #!/usr/bin/python import asyncore import socket import string class http_client (asyncore.dispatcher): def __init__ (self, host, path): asyncore.dispatcher.__init__ (self) self.path = path self.create_socket (socket.AF_INET, socket.SOCK_STREAM) self.connect ((host, 80)) def handle_connect (self): self.send ('GET %s HTTP/1.0\r\n\r\n' % self.path) def handle_read (self): data = self.recv (8192) print data def handle_write (self): pass if __name__ == '__main__': import sys import urlparse for url in sys.argv[1:]: parts = urlparse.urlparse (url) if parts[0] != 'http': raise ValueError, "HTTP URL's only, please" else: host = parts[1] path = parts[2] http_client (host, path) asyncore.loop() Right after that, the author states the following... " A really good way to understand select() is to put a print statement into the asyncore.poll() function: [...] (r,w,e) = select.select (r,w,e, timeout) print '---' print 'read', r print 'write', w [...] Each time through the loop you will see which channels have fired which events. " How the heck do I modify the code put the print statement into the asyncore.poll() function? Chad -- http://mail.python.org/mailman/listinfo/python-list