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之Python文档
Oct 10 Python
python根据开头和结尾字符串获取中间字符串的方法
Mar 26 Python
Python 稀疏矩阵-sparse 存储和转换
May 27 Python
Python将list中的string批量转化成int/float的方法
Jun 26 Python
详解pandas使用drop_duplicates去除DataFrame重复项参数
Aug 01 Python
Django应用程序入口WSGIHandler源码解析
Aug 05 Python
python手写均值滤波
Feb 19 Python
Python 3.8 新功能来一波(大部分人都不知道)
Mar 11 Python
python名片管理系统开发
Jun 18 Python
python 解决Windows平台上路径有空格的问题
Nov 10 Python
利用Opencv实现图片的油画特效实例
Feb 28 Python
python模板入门教程之flask Jinja
Apr 11 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内存溢出问题的解决方法
2013/06/25 PHP
详解PHP编码转换函数应用技巧
2016/10/22 PHP
CSS中一些@规则的用法小结
2021/03/09 HTML / CSS
apycom出品的jQuery精美菜单破解方法
2011/02/18 Javascript
javascript中String类的subString()方法和slice()方法
2011/05/24 Javascript
解决javascript:window.close()在chrome,Firefox下失效的问题
2013/05/07 Javascript
jquery 提交值不为空的元素示例代码
2013/05/10 Javascript
js hover 定时器(实例代码)
2013/11/12 Javascript
利用js(jquery)操作Cookie的方法说明
2013/12/19 Javascript
用jquery仿做发微博功能示例
2014/04/18 Javascript
js动态创建标签示例代码
2014/06/09 Javascript
JQuery页面地址处理插件jqURL详解
2015/05/03 Javascript
数据分析软件之FineReport教程:[5]参数界面JS(全)
2015/08/13 Javascript
jQuery validate插件submitHandler提交导致死循环解决方法
2016/01/21 Javascript
微信小程序 switch组件详解及简单实例
2017/01/10 Javascript
AngularJS之自定义服务详解(factory、service、provider)
2017/04/14 Javascript
Node.js中的http请求客户端示例(request client)
2017/05/04 Javascript
vue.js获取数据库数据实例代码
2017/05/26 Javascript
Vue中使用clipboard实现复制功能
2018/09/05 Javascript
如何实现一个webpack模块解析器
2018/10/24 Javascript
[05:02]2014DOTA2 TI中国区预选赛精彩TOPPLAY第三弹
2014/06/25 DOTA
python学习之编写查询ip程序
2016/02/27 Python
Python中xrange与yield的用法实例分析
2017/12/26 Python
Python中getpass模块无回显输入源码解析
2018/01/11 Python
python实现统计文本中单词出现的频率详解
2019/05/20 Python
Python中list循环遍历删除数据的正确方法
2019/09/02 Python
python系统指定文件的查找只输出目录下所有文件及文件夹
2020/01/19 Python
Python学习之路安装pycharm的教程详解
2020/06/17 Python
Python如何实现大型数组运算(使用NumPy)
2020/07/24 Python
乐高积木玩具美国官网:LEGO Shop US
2016/09/16 全球购物
办公室文秘自我评价
2013/09/21 职场文书
生物技术研究生自荐信
2013/11/12 职场文书
违反学校规定检讨书
2014/01/18 职场文书
国庆节活动总结
2014/08/26 职场文书
初中作文评语
2014/12/25 职场文书
发布会邀请函
2015/01/31 职场文书