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 的 with 语句详解
Jun 13 Python
用Python代码来解图片迷宫的方法整理
Apr 02 Python
python 自动化将markdown文件转成html文件的方法
Sep 23 Python
Python 常用 PEP8 编码规范详解
Jan 22 Python
Python实现的三层BP神经网络算法示例
Feb 07 Python
python爬取足球直播吧五大联赛积分榜
Jun 13 Python
python判断一个数是否能被另一个整数整除的实例
Dec 12 Python
python调用动态链接库的基本过程详解
Jun 19 Python
Python 获取 datax 执行结果保存到数据库的方法
Jul 11 Python
扩展Django admin的list_filter()可使用范围方法
Aug 21 Python
关于torch.optim的灵活使用详解(包括重写SGD,加上L1正则)
Feb 20 Python
Python3爬虫中pyspider的安装步骤
Jul 29 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
一些操作和快捷键的理解和讨论
2020/03/04 星际争霸
php 随机数的产生、页面跳转、件读写、文件重命名、switch语句
2009/08/07 PHP
删除无限分类并同时删除它下面的所有子分类的方法
2010/08/08 PHP
PHP嵌套输出缓冲代码实例
2015/05/12 PHP
监控 url fragment变化的js代码
2010/04/19 Javascript
JS继承 笔记
2011/07/13 Javascript
深入解析contentWindow, contentDocument
2013/07/04 Javascript
热点新闻滚动特效的js代码
2013/08/17 Javascript
原生javascript实现分享到朋友圈功能 支持ios和android
2016/05/11 Javascript
js复制内容到剪贴板代码,js复制代码的简单实例
2016/10/27 Javascript
微信小程序学习(4)-系统配置app.json详解
2017/01/12 Javascript
d3.js实现立体柱图的方法详解
2017/04/28 Javascript
详解vue-admin和后端(flask)分离结合的例子
2018/02/12 Javascript
微信小程序的授权实现过程解析
2019/08/02 Javascript
javascript简单实现深浅拷贝过程详解
2019/10/08 Javascript
[04:29]2014DOTA2国际邀请赛 主赛事第三日TOPPLAY
2014/07/21 DOTA
python自然语言编码转换模块codecs介绍
2015/04/08 Python
Python获取文件所在目录和文件名的方法
2017/01/12 Python
Python中模块string.py详解
2017/03/12 Python
Python 逐行分割大txt文件的方法
2017/10/10 Python
100行Python代码实现自动抢火车票(附源码)
2018/01/11 Python
python 基本数据类型占用内存空间大小的实例
2018/06/12 Python
python matlibplot绘制多条曲线图
2021/02/19 Python
python登录WeChat 实现自动回复实例详解
2019/05/28 Python
Python matplotlib学习笔记之坐标轴范围
2019/06/28 Python
如何使用python爬虫爬取要登陆的网站
2019/07/12 Python
python取均匀不重复的随机数方式
2019/11/27 Python
python两个_多个字典合并相加的实例代码
2019/12/26 Python
python 实现弹球游戏的示例代码
2020/11/17 Python
python中count函数知识点浅析
2020/12/17 Python
HTML5在线预览PDF的示例代码
2017/09/14 HTML / CSS
面向游戏玩家和书呆子的极客订阅盒:Loot Crate
2020/11/25 全球购物
数学系毕业生求职信
2014/05/29 职场文书
2014年房地产销售工作总结
2014/12/01 职场文书
未婚证明范本
2015/06/15 职场文书
嘉年华活动新闻稿
2015/07/17 职场文书