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查询阿里巴巴关键字排名的方法
Jul 08 Python
python利用sklearn包编写决策树源代码
Dec 21 Python
浅谈python编译pyc工程--导包问题解决
Mar 20 Python
Python redis操作实例分析【连接、管道、发布和订阅等】
May 16 Python
Python OpenCV实现视频分帧
Jun 01 Python
python设计tcp数据包协议类的例子
Jul 23 Python
Numpy将二维数组添加到空数组的实现
Dec 05 Python
Python实现括号匹配方法详解
Feb 10 Python
django自带的权限管理Permission用法说明
May 13 Python
基于python生成英文版词云图代码实例
May 16 Python
python 基于opencv 实现一个鼠标绘图小程序
Dec 11 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
Zerg基本策略
2020/03/14 星际争霸
PHP中的串行化变量和序列化对象
2006/09/05 PHP
PHP小教程之实现双向链表
2014/06/12 PHP
腾讯的ip接口 方便获取当前用户的ip地理位置
2010/11/25 Javascript
基于jquery的finkyUI插件与Ajax实现页面数据加载功能
2010/12/03 Javascript
JavaScript初学者应注意的七个细节小结
2012/01/30 Javascript
深入理解JavaScript系列(15) 函数(Functions)
2012/04/12 Javascript
jquery判断浏览器类型的代码
2012/11/05 Javascript
解决ExtJS在chrome或火狐中正常显示在ie中不显示的浏览器兼容问题
2013/01/11 Javascript
单击和双击事件的冲突处理示例代码
2014/04/03 Javascript
jquery防止重复执行动画避免页面混乱
2014/04/22 Javascript
jQuery仿gmail实现fixed布局的方法
2015/05/27 Javascript
jQuery-1.9.1源码分析系列(十)事件系统之事件体系结构
2015/11/19 Javascript
JS实现Ajax的方法分析
2016/12/20 Javascript
js实现做通讯录的索引滑动显示效果和滑动显示锚点效果
2017/02/18 Javascript
openlayers实现图标拖动获取坐标
2020/09/25 Javascript
python实现域名系统(DNS)正向查询的方法
2016/04/19 Python
解析Mac OS下部署Pyhton的Django框架项目的过程
2016/05/03 Python
Python编程之基于概率论的分类方法:朴素贝叶斯
2017/11/11 Python
简单了解Python生成器是什么
2019/07/02 Python
Python3环境安装Scrapy爬虫框架过程及常见错误
2019/07/12 Python
python实现连连看辅助(图像识别)
2020/03/25 Python
基于python的BP神经网络及异或实现过程解析
2019/09/30 Python
基于Python词云分析政府工作报告关键词
2020/06/02 Python
python实现ping命令小程序
2020/12/28 Python
python中pyqtgraph知识点总结
2021/01/26 Python
法国在线宠物店:zooplus.fr
2018/02/23 全球购物
Sql面试题
2013/03/20 面试题
班级标语大全
2014/06/21 职场文书
年度安全生产目标责任书
2014/07/23 职场文书
领导班子四风查摆对照检查材料思想汇报
2014/10/05 职场文书
党员先进事迹材料
2014/12/19 职场文书
大客户经理岗位职责
2015/04/09 职场文书
女性健康讲座主持词
2015/07/04 职场文书
高二化学教学反思
2016/02/22 职场文书
2016创先争优活动党员公开承诺书
2016/03/24 职场文书