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 pyinotify模块实现对文档的实时监控功能方法
Oct 13 Python
python画柱状图--不同颜色并显示数值的方法
Dec 13 Python
Django之路由层的实现
Sep 09 Python
安装PyInstaller失败问题解决
Dec 14 Python
6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI库)
Jan 06 Python
pytorch 中pad函数toch.nn.functional.pad()的用法
Jan 08 Python
python 实现字符串下标的输出功能
Feb 13 Python
python3.7添加dlib模块的方法
Jul 01 Python
Anaconda详细安装步骤图文教程
Nov 12 Python
Python urllib request模块发送请求实现过程解析
Dec 10 Python
python实现经纬度采样的示例代码
Dec 10 Python
Python实现简单的俄罗斯方块游戏
Sep 25 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写杨辉三角实例代码
2011/07/17 PHP
逆序二维数组插入一元素的php代码
2012/06/08 PHP
深入解析PHP的引用计数机制
2013/06/14 PHP
php-fpm配置详解
2014/02/12 PHP
php多功能图片处理类分享(php图片缩放类)
2014/03/14 PHP
php模拟post提交数据的方法
2015/02/12 PHP
php实现微信发红包
2015/12/05 PHP
php-fpm开启状态统计的方法详解
2017/06/23 PHP
PHP实现统计所有字符在字符串中出现次数的方法
2017/10/17 PHP
kindeditor 加入七牛云上传的实例讲解
2017/11/12 PHP
jQuery 遍历json数组的实现代码
2020/09/22 Javascript
无缝滚动js代码通俗易懂(自写)
2013/06/19 Javascript
浅析JavaScript中的同名标识符优先级
2013/12/06 Javascript
jQuery判断checkbox(复选框)是否被选中以及全选、反选实现代码
2014/02/21 Javascript
ie浏览器使用js导出网页到excel并打印
2014/03/11 Javascript
jquery+CSS实现的水平布局多级网页菜单效果
2015/08/24 Javascript
jQuery实现鼠标悬停背景翻转的黑色导航菜单代码
2015/09/14 Javascript
微信小程序 点击控件后选中其它反选实例详解
2017/02/21 Javascript
JS设计模式之策略模式概念与用法分析
2018/02/05 Javascript
JavaScript变量声明var,let.const及区别浅析
2018/04/23 Javascript
vue keep-alive请求数据的方法示例
2018/05/16 Javascript
工作中常用到的ES6语法
2018/09/04 Javascript
js变量声明var使用与不使用的区别详解
2019/01/21 Javascript
layui select 禁止点击的实现方法
2019/09/05 Javascript
Python实现的从右到左字符串替换方法示例
2018/07/06 Python
Python+opencv 实现图片文字的分割的方法示例
2019/07/04 Python
xadmin使用formfield_for_dbfield函数过滤下拉表单实例
2020/04/07 Python
Python如何读取、写入CSV数据
2020/07/28 Python
python自动生成sql语句的脚本
2021/02/24 Python
viagogo波兰票务平台:演唱会、体育比赛、戏剧门票
2018/04/23 全球购物
澳大利亚当地最大的时装生产商:Cue
2018/08/06 全球购物
工程师求职简历的自我评价分享
2013/10/10 职场文书
副总经理岗位职责范本
2014/09/30 职场文书
大学毕业生个人总结
2015/02/28 职场文书
教师节感想
2015/08/11 职场文书
在 Python 中利用 Pool 进行多线程
2022/04/24 Python