asyncore.poll() question
Lucasm
lordlucraft at gmail.com
Sat Oct 16 09:47:26 EDT 2010
On 16 Okt, 15:31, chad <cdal... at gmail.com> wrote:
> 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
Hi,
You can find the file in your Python directory, in my case /usr/lib/
Python2.6/asyncore.py. You should delete the .pyc file to make sure it
is recompiled. And you will need root access :).
Lucas
More information about the Python-list
mailing list