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 struct模块解析
Jun 12 Python
Python实现图像几何变换
Jul 06 Python
Python实现的十进制小数与二进制小数相互转换功能
Oct 12 Python
微信跳一跳自动运行python脚本
Jan 08 Python
numpy给array增加维度np.newaxis的实例
Nov 01 Python
Python字典的基本用法实例分析【创建、增加、获取、修改、删除】
Mar 05 Python
树莓派使用USB摄像头和motion实现监控
Jun 22 Python
Python设置matplotlib.plot的坐标轴刻度间隔以及刻度范围
Jun 25 Python
pandas实现to_sql将DataFrame保存到数据库中
Jul 03 Python
Python 进程之间共享数据(全局变量)的方法
Jul 16 Python
基于python判断字符串括号是否闭合{}[]()
Sep 21 Python
浅析python 通⽤爬⾍和聚焦爬⾍
Sep 28 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
使用NetBeans + Xdebug调试PHP程序的方法
2011/04/12 PHP
sphinx增量索引的一个问题
2011/06/14 PHP
yii2.0实现pathinfo的形式访问的配置方法
2016/04/06 PHP
PHP 多任务秒级定时器的实现方法
2018/05/13 PHP
Laravel 集成微信用户登录和绑定的实现
2019/12/27 PHP
来自国外的30个基于jquery的Web下拉菜单
2012/06/22 Javascript
使用jquery实现div的tab切换实例代码
2013/05/27 Javascript
Microsfot .NET Framework4.0框架 安装失败的解决方法
2013/08/14 Javascript
JavaScript加强之自定义callback示例
2013/09/21 Javascript
浅析JavaScript中的typeof运算符
2013/11/30 Javascript
表格奇偶行设置不同颜色的核心JS代码
2013/12/24 Javascript
一个JavaScript获取元素当前高度的实例
2014/10/29 Javascript
js表单验证实例讲解
2016/03/31 Javascript
关于Jquery中的事件绑定总结
2016/10/26 Javascript
jQuery.ajax实现根据不同的Content-Type做出不同的响应
2016/11/03 Javascript
微信小程序 常见问题总结(4058,40013)及解决办法
2017/01/11 Javascript
js实现鼠标拖拽div左右滑动
2020/01/15 Javascript
[05:09]DOTA2-DPC中国联赛2月22日Recap集锦
2021/03/11 DOTA
Python学习资料
2007/02/08 Python
Python使用贪婪算法解决问题
2019/10/22 Python
Anaconda 查看、创建、管理和使用python环境的方法
2019/12/03 Python
django实现将后台model对象转换成json对象并传递给前端jquery
2020/03/16 Python
python实现IOU计算案例
2020/04/12 Python
Python常用模块函数代码汇总解析
2020/08/31 Python
python 实现控制鼠标键盘
2020/11/27 Python
CSS3为背景图设置遮罩并解决遮罩样式继承问题
2020/06/22 HTML / CSS
介绍一下OSI七层模型
2012/07/03 面试题
英文版区域经理求职信
2013/10/23 职场文书
社团文化节邀请函
2014/01/10 职场文书
工程管理专业毕业生自荐信
2014/01/24 职场文书
文明餐桌行动实施方案
2014/02/19 职场文书
党风廉政建设责任书
2014/04/14 职场文书
2014年客户经理工作总结
2014/11/20 职场文书
数据库的高级查询六:表连接查询:外连接(左外连接,右外连接,UNION关键字,连接中ON与WHERE的不同)
2021/04/05 MySQL
详细了解MVC+proxy
2021/07/09 Java/Android
springboot为异步任务规划自定义线程池的实现
2022/06/14 Java/Android