Advertisement
Guest User

Untitled

a guest
Jan 18th, 2017
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.55 KB | None | 0 0
  1. import asyncore
  2. import logging
  3. import socket
  4. from cStringIO import StringIO
  5. import urlparse
  6.  
  7. class Client(asyncore.dispatcher):
  8.  
  9. def __init__(self,host):
  10. self.logger = logging.getLogger()
  11. self.write_buffer = ""
  12. self.read_buffer = StringIO()
  13. asyncore.dispatcher.__init__(self)
  14. self.create_socket(socket.AF_INET, socket.SOCK_STREAM)
  15. address = (host, 80)
  16. self.logger.debug('connecting to %s', address)
  17. self.connect(address)
  18.  
  19. def handle_connect(self):
  20. self.logger.debug('handle_connect()')
  21.  
  22. def handle_close(self):
  23. self.logger.debug('handle_close()')
  24. self.close()
  25.  
  26. def writable(self):
  27. is_writable = (len(self.write_buffer) > 0)
  28. if is_writable:
  29. self.logger.debug('writable() -> %s', is_writable)
  30. return is_writable
  31.  
  32. def readable(self):
  33. self.logger.debug('readable() -> True')
  34. return True
  35.  
  36. def handle_write(self):
  37. sent = self.send(self.write_buffer)
  38. self.logger.debug('handle_write() -> "%s"', self.write_buffer[:sent])
  39. self.write_buffer = self.write_buffer[sent:]
  40.  
  41. def handle_read(self):
  42. data = self.recv(8192)
  43. self.logger.debug('handle_read() -> %d bytes', len(data))
  44. self.read_buffer.write(data)
  45.  
  46. if __name__ == '__main__':
  47. logging.basicConfig(level=logging.DEBUG,
  48. format='%(name)s: %(message)s',
  49. )
  50.  
  51. clients = Client("127.0.0.1")
  52.  
  53. logging.debug('LOOP STARTING')
  54.  
  55. asyncore.loop()
  56.  
  57. logging.debug('LOOP DONE')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement