asyncore.poll() question

Felipe Bastos Nunes felipe.bastosn at gmail.com
Sat Oct 16 09:57:56 EDT 2010


Or download the old source files, and use the asyncore.py that's there.

2010/10/16, Lucasm <lordlucraft at gmail.com>:
> 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
> --
> http://mail.python.org/mailman/listinfo/python-list
>


-- 
Felipe Bastos Nunes



More information about the Python-list mailing list