Python中asyncore的用法实例


Posted in Python onSeptember 29, 2014

本文实例讲述了python中asyncore模块的用法,分享给大家供大家参考。具体方法如下:

实例代码如下:

##asyncore 
 
import asyncore,socket 
 
######################################################################## 
class AsyncGet(asyncore.dispatcher): 
  """ 
  the defined class 
  """ 
 
  #---------------------------------------------------------------------- 
  def __init__(self, host): 
    """Constructor""" 
    asyncore.dispatcher.__init__(self) 
    self.host = host 
    self.create_socket(socket.AF_INET, socket.SOCK_STREAM) 
    self.connect((host, 80)) 
    self.request = "Get /index.html HTTP/1.0\r\n\r\n" 
    self.outf = None 
    print "连接 :", host 
     
  def handle_connect(self): 
    print 'connect:', self.host 
    pass 
  def handle_read(self): 
    if not self.outf: 
      print '正在连接:',self.host 
    self.outf = open("%s.txt" % self.host, 'wb') 
    data = self.recv(8192) 
    if data: 
      self.outf.write(data) 
     
    pass 
  def handle_writebale(self): 
    return len(self.request) 
     
     
  def handle_write(self): 
    num_sent = self.send(self.request) 
    pass 
   
  def handle_close(self): 
    asyncore.dispatcher.close(self) 
    print "socket close in:",self.host 
    if self.outf: 
      self.outf.close() 
    pass 
   
if __name__ == "__main__": 
  AsyncGet("www.python.org") 
  asyncore.loop() 
 
import asyncore,socket 
 
######################################################################## 
class AsyncGet(asyncore.dispatcher): 
  """ 
  the defined class 
  """ 
 
  #---------------------------------------------------------------------- 
  def __init__(self, host): 
    """Constructor""" 
    asyncore.dispatcher.__init__(self) 
    self.host = host 
    self.create_socket(socket.AF_INET, socket.SOCK_STREAM) 
    self.connect((host, 80)) 
    self.request = "Get /index.html HTTP/1.0\r\n\r\n" 
    self.outf = None 
    print "连接 :", host 
     
  def handle_connect(self): 
    print 'connect:', self.host 
    pass 
  def handle_read(self): 
    if not self.outf: 
      print '正在连接:',self.host 
    self.outf = open("%s.txt" % self.host, 'wb') 
    data = self.recv(8192) 
    if data: 
      self.outf.write(data) 
     
    pass 
  def handle_writebale(self): 
    return len(self.request) 
     
     
  def handle_write(self): 
    num_sent = self.send(self.request) 
    pass 
   
  def handle_close(self): 
    asyncore.dispatcher.close(self) 
    print "socket close in:",self.host 
    if self.outf: 
      self.outf.close() 
    pass 
   
if __name__ == "__main__": 
  AsyncGet("www.python.org") 
  asyncore.loop()

结果文件的内容为:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>302 Found</title>
</head><body>
<h1>Found</h1>
<p>The document has moved <a href="http://www.python.org">here</a>.</p>
<hr>
<address>Apache/2.2.16 (Debian) Server at dinsdale.python.org Port 80</address>
</body></html>

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
python迭代器的使用方法实例
Nov 21 Python
python实现数通设备端口监控示例
Apr 02 Python
python中常用的各种数据库操作模块和连接实例
May 29 Python
Python读写Json涉及到中文的处理方法
Sep 12 Python
python使用生成器实现可迭代对象
Mar 20 Python
django进阶之cookie和session的使用示例
Aug 17 Python
Python实现京东秒杀功能代码
May 16 Python
使用python去除图片白色像素的实例
Dec 12 Python
Python字符串、列表、元组、字典、集合的补充实例详解
Dec 20 Python
Python中if有多个条件处理方法
Feb 26 Python
python实现翻译word表格小程序
Feb 27 Python
Jmeter调用Python脚本实现参数互相传递的实现
Jan 22 Python
python提示No module named images的解决方法
Sep 29 #Python
python服务器端收发请求的实现代码
Sep 29 #Python
python利用beautifulSoup实现爬虫
Sep 29 #Python
Python中为feedparser设置超时时间避免堵塞
Sep 28 #Python
跟老齐学Python之从格式化表达式到方法
Sep 28 #Python
跟老齐学Python之print详解
Sep 28 #Python
跟老齐学Python之正规地说一句话
Sep 28 #Python
You might like
一个简单的PHP投票程序源码
2007/03/11 PHP
php daddslashes()和 saddslashes()有哪些区别分析
2012/10/26 PHP
用 Composer构建自己的 PHP 框架之使用 ORM
2014/10/30 PHP
windows中为php安装mongodb与memcache
2015/01/06 PHP
PHP处理大量表单字段的便捷方法
2015/02/07 PHP
php实现模拟登陆方正教务系统抓取课表
2015/05/19 PHP
php实现多站点共用session实现单点登录的方法详解
2019/09/18 PHP
PHP实现统计代码行数小工具
2019/09/19 PHP
jquery入门—数据删除与隔行变色以及图片预览
2013/01/07 Javascript
关于JavaScript对象的动态选择及遍历对象
2014/03/10 Javascript
JavaScript支持的最大递归调用次数分析
2014/06/24 Javascript
jquery ajax 如何向jsp提交表单数据
2015/08/23 Javascript
javascript中substring()、substr()、slice()的区别
2015/08/30 Javascript
老生常谈js动态添加事件--- 事件委托
2016/07/19 Javascript
JSON 对象未定义错误的解决方法
2016/09/29 Javascript
基于BootStrap的前端分页带省略号和上下页效果
2017/05/18 Javascript
BootStrap 页签切换失效的解决方法
2017/08/17 Javascript
解决百度Echarts图表坐标轴越界的方法
2018/10/17 Javascript
js实现通过开始结束控制的计时器
2019/02/25 Javascript
Vue2.x和Vue3.x的双向绑定原理详解
2020/11/05 Javascript
vue+iview分页组件的封装
2020/11/17 Vue.js
pyqt4教程之实现半透明的天气预报界面示例
2014/03/02 Python
pycharm 使用心得(九)解决No Python interpreter selected的问题
2014/06/06 Python
Python操作RabbitMQ服务器实现消息队列的路由功能
2016/06/29 Python
Python中with及contextlib的用法详解
2017/06/08 Python
如何基于python操作excel并获取内容
2019/12/24 Python
Python爬虫自动化爬取b站实时弹幕实例方法
2021/01/26 Python
John Hardy官方网站:手工设计首饰的奢侈品牌
2017/07/05 全球购物
乌克兰时尚鞋子和衣服购物网站:Born2be
2018/05/24 全球购物
Lulu Guinness露露·吉尼斯官网:红唇包
2019/02/03 全球购物
英国现代市场:ARKET
2019/04/10 全球购物
气象学专业个人求职信
2014/03/15 职场文书
爱与责任演讲稿
2014/05/20 职场文书
总经理岗位职责说明书
2014/07/30 职场文书
应届生简历自我评价
2015/03/11 职场文书
清明节文明祭祀倡议书
2015/04/28 职场文书