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中子类继承父类的__init__方法实例
Dec 15 Python
Python使用剪切板的方法
Jun 06 Python
windows下 兼容Python2和Python3的解决方法
Dec 05 Python
Python元组知识点总结
Feb 18 Python
python画图--输出指定像素点的颜色值方法
Jul 03 Python
python监控进程状态,记录重启时间及进程号的实例
Jul 15 Python
Python3和pyqt5实现控件数据动态显示方式
Dec 13 Python
tensorflow如何继续训练之前保存的模型实例
Jan 21 Python
Centos7下源码安装Python3 及shell 脚本自动安装Python3的教程
Mar 07 Python
pytorch 中的重要模块化接口nn.Module的使用
Apr 02 Python
详解python中的lambda与sorted函数
Sep 04 Python
Python 中的 copy()和deepcopy()
Nov 07 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
一个高ai的分页函数和一个url函数
2006/10/09 PHP
php 中文和编码判断代码
2010/05/16 PHP
php cookie使用方法学习笔记分享
2013/11/07 PHP
安装ImageMagick出现error while loading shared libraries的解决方法
2014/09/23 PHP
php树型类实例
2014/12/05 PHP
PHPExcel读取EXCEL中的图片并保存到本地的方法
2015/02/14 PHP
laravel中短信发送验证码的实现方法
2018/04/25 PHP
JavaScript中判断变量是数组、函数或是对象类型的方法
2015/02/25 Javascript
JS替换字符串中空格方法
2015/04/17 Javascript
快速掌握Node.js模块封装及使用
2016/03/21 Javascript
Web打印解决方案之普通报表打印功能
2016/08/29 Javascript
AngularJS动态加载模块和依赖的方法分析
2016/11/08 Javascript
Javascript面试经典套路reduce函数查重
2017/03/23 Javascript
vue-router启用history模式下的开发及非根目录部署方法
2018/12/23 Javascript
[02:43]DOTA2英雄基础教程 德鲁伊
2014/01/13 DOTA
Python赋值语句后逗号的作用分析
2015/06/08 Python
python解析基于xml格式的日志文件
2017/02/25 Python
Python3多线程基础知识点
2019/02/19 Python
Django 缓存配置Redis使用详解
2019/07/23 Python
python 动态调用函数实例解析
2019/10/21 Python
Python中使用gflags实例及原理解析
2019/12/13 Python
Python 中由 yield 实现异步操作
2020/05/04 Python
django美化后台django-suit的安装配置操作
2020/07/12 Python
Python filter过滤器原理及实例应用
2020/08/18 Python
Python读取图像并显示灰度图的实现
2020/12/01 Python
termux中matplotlib无法显示中文问题的解决方法
2021/01/11 Python
Linux机考试题
2015/07/17 面试题
中西医结合临床医学专业大学生自荐信
2013/09/28 职场文书
员工拓展培训方案
2014/02/15 职场文书
大学生个人求职信
2014/06/02 职场文书
大学生见习期满自我鉴定
2014/09/13 职场文书
2014年统战工作总结
2014/12/09 职场文书
房地产公司工程部经理岗位职责
2015/04/09 职场文书
预防艾滋病宣传活动总结
2015/05/09 职场文书
先进基层党组织事迹材料2016
2016/02/29 职场文书
Laravel中获取IP的真实地理位置
2021/04/01 PHP