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转码问题的解决方法
Oct 07 Python
使用Python的Supervisor进行进程监控以及自动启动
May 29 Python
python开启多个子进程并行运行的方法
Apr 18 Python
Python实现选择排序
Jun 04 Python
django创建自定义模板处理器的实例详解
Aug 14 Python
python中子类调用父类函数的方法示例
Aug 18 Python
用TensorFlow实现戴明回归算法的示例
May 02 Python
python方法生成txt标签文件的实例代码
May 10 Python
python基于TCP实现的文件下载器功能案例
Dec 10 Python
Python动态导入模块:__import__、importlib、动态导入的使用场景实例分析
Mar 30 Python
如何理解Python中包的引入
May 29 Python
10行Python代码实现Web自动化管控的示例代码
Aug 14 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实现多条件查询实例代码
2010/07/17 PHP
深入理解PHP中的global
2014/08/19 PHP
JavaScript Event学习第二章 Event浏览器兼容性
2010/02/07 Javascript
CSS鼠标响应事件经过、移动、点击示例介绍
2013/09/04 Javascript
浅析JavaScript中的CSS属性及命名规范
2013/11/28 Javascript
JS中判断JSON数据是否存在某字段的方法
2014/03/07 Javascript
jQuery实现带幻灯的tab滑动切换风格菜单代码
2015/08/27 Javascript
JavaScript中的数据类型转换方法小结
2015/10/26 Javascript
JavaScript接口的实现三种方式(推荐)
2016/06/14 Javascript
jQuery基本选择器之标签名选择器
2016/09/03 Javascript
jQuery的Cookie封装,与PHP交互的简单实现
2016/10/05 Javascript
JavaScript获取URL中参数querystring的方法详解
2016/10/11 Javascript
JS正则表达式验证账号、手机号、电话和邮箱是否合法
2017/03/08 Javascript
vue中v-model动态生成的实例详解
2017/10/27 Javascript
vue脚手架搭建过程图解
2018/06/06 Javascript
利用jsonp解决js读取本地json跨域的问题
2018/12/11 Javascript
Webpack设置环境变量的一些误区详解
2019/12/19 Javascript
Vue+Node服务器查询Mongo数据库及页面数据传递操作实例分析
2019/12/20 Javascript
python通过robert、sobel、Laplace算子实现图像边缘提取详解
2019/08/21 Python
Python3实现配置文件差异对比脚本
2019/11/18 Python
pytorch 模拟关系拟合——回归实例
2020/01/14 Python
python实现简单俄罗斯方块
2020/03/13 Python
Python闭包及装饰器运行原理解析
2020/06/17 Python
Python基于locals返回作用域字典
2020/10/17 Python
PyCharm+Miniconda3安装配置教程详解
2021/02/16 Python
HTML5 使用 sessionStorage 进行页面传值的方法
2018/07/02 HTML / CSS
Born鞋子官网:Born Shoes
2017/04/06 全球购物
美国男士和女士奢侈品折扣手表购物网站:Certified Watch Store
2018/06/13 全球购物
最新茶叶店创业计划书
2014/01/14 职场文书
小学语文教学经验交流材料
2014/06/02 职场文书
煤矿安全生产标语
2014/06/06 职场文书
人大代表选举标语
2014/10/07 职场文书
医院见习报告范文
2014/11/03 职场文书
公司酒会致辞
2015/07/30 职场文书
教师岗位说明书
2015/09/30 职场文书
对讲机的最大通讯距离是多少
2022/02/18 无线电