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实现在pickling的时候压缩的方法
Sep 25 Python
编写Python的web框架中的Model的教程
Apr 29 Python
ubuntu系统下 python链接mysql数据库的方法
Jan 09 Python
使用Python绘制图表大全总结
Feb 11 Python
对numpy中轴与维度的理解
Apr 18 Python
python高阶爬虫实战分析
Jul 29 Python
python文件操作之批量修改文件后缀名的方法
Aug 10 Python
Python使用Slider组件实现调整曲线参数功能示例
Sep 06 Python
ansible动态Inventory主机清单配置遇到的坑
Jan 19 Python
解决python运行启动报错问题
Jun 01 Python
详解在Python中使用Torchmoji将文本转换为表情符号
Jul 27 Python
Python OpenCV超详细讲解读取图像视频和网络摄像头
Apr 02 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
destoon会员注册提示“数据校验失败(2)”解决方法
2014/06/21 PHP
php根据一个给定范围和步进生成数组的方法
2015/06/19 PHP
PHP中通过trigger_error触发PHP错误示例
2015/06/23 PHP
WordPress主题制作之模板文件的引入方法
2015/12/28 PHP
PHP dirname功能及原理实例解析
2020/10/28 PHP
PHP时间类完整代码实例
2021/02/26 PHP
用Javascript实现UTF8编码转换成gb2312编码
2006/12/22 Javascript
关于javascript中的parseInt使用技巧
2009/09/03 Javascript
JAVASCRIPT实现的WEB页面跳转以及页面间传值方法
2010/05/13 Javascript
JavaScript link方法入门实例(给字符串加上超链接)
2014/10/17 Javascript
jquery实现翻动fadeIn显示的方法
2015/03/05 Javascript
js下拉选择框与输入框联动实现添加选中值到输入框的方法
2015/08/17 Javascript
浅析2种JavaScript继承方式
2015/12/04 Javascript
JavaScript获取图片像素颜色并转换为box-shadow显示
2016/03/11 Javascript
浅谈时钟的生成(js手写简洁代码)
2016/08/20 Javascript
谈谈因Vue.js引发关于getter和setter的思考
2016/12/02 Javascript
Vue.js对象转换实例
2017/06/07 Javascript
vue 简单自动补全的输入框的示例
2018/03/12 Javascript
echarts实现词云自定义形状的示例代码
2019/02/20 Javascript
JS秒杀倒计时功能完整实例【使用jQuery3.1.1】
2019/09/03 jQuery
layer.open弹层查看缩略图的原图,自适应大小的实例
2019/09/05 Javascript
[06:04]DOTA2英雄梦之声Vol19卓尔游侠
2014/06/20 DOTA
利用python程序生成word和PDF文档的方法
2017/02/14 Python
python如何使用unittest测试接口
2018/04/04 Python
python矩阵转换为一维数组的实例
2018/06/05 Python
Python if语句知识点用法总结
2018/06/10 Python
解决python升级引起的pip执行错误的问题
2018/06/12 Python
Python实现的各种常见分布算法示例
2018/12/13 Python
python3.4 将16进制转成字符串的实例
2019/06/12 Python
python3中使用__slots__限定实例属性操作分析
2020/02/14 Python
中文专业学生自我评价范文
2014/02/06 职场文书
大学自我评价
2014/02/12 职场文书
《临死前的严监生》教学反思
2014/02/13 职场文书
教师个人年终总结
2015/02/11 职场文书
患者身份识别制度
2015/08/06 职场文书
Python IO文件管理的具体使用
2022/03/20 Python