跨平台python异步回调机制实现和使用方法


Posted in Python onNovember 26, 2013

1 将下面代码拷贝到一个文件,命名为asyncore.py

import socket
import select
import sys
def ds_asyncore(addr,callback,timeout=5):
    s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    s.connect(addr)
    r,w,e = select.select([s],[],[],timeout)
    if r:
        respose_data=s.recv(1024)
        callback(respose_data)
        s.close()
        return 0
    else:
        s.close()
        return 1

2 编写自己的代码

1> 导入asyncore

2> 定义回调函数callback,callback需要一个参数,代表请求返回数据

3> 直接调用asyncore.ds_asyncore(('127.0.0.1', 33333),callback,timeout=5),其中第一个参数是一个(ip,port)元组,第二个是回调函数,第三个是超时时间。

import asyncore
if __name__=="__main__":
    def callback(respose_data):
        print respose_data
    asyncore.ds_asyncore(('127.0.0.1', 33333),callback,timeout=5)

注:此代码可在windows,linux上运行

Python 相关文章推荐
python使用htmllib分析网页内容的方法
May 08 Python
详解Python中 __get__和__getattr__和__getattribute__的区别
Jun 16 Python
Python unittest模块用法实例分析
May 25 Python
Django框架实现的简单分页功能示例
Dec 04 Python
Python3实现取图片中特定的像素替换指定的颜色示例
Jan 24 Python
pandas 数据索引与选取的实现方法
Jun 21 Python
Python简单处理坐标排序问题示例
Jul 11 Python
Django用数据库表反向生成models类知识点详解
Mar 25 Python
python读取配置文件方式(ini、yaml、xml)
Apr 09 Python
Python threading模块condition原理及运行流程详解
Oct 05 Python
pandas取dataframe特定行列的实现方法
May 24 Python
Python日志模块logging用法
Jun 05 Python
python连接池实现示例程序
Nov 26 #Python
使用python BeautifulSoup库抓取58手机维修信息
Nov 21 #Python
python BeautifulSoup使用方法详解
Nov 21 #Python
python装饰器使用方法实例
Nov 21 #Python
tornado框架blog模块分析与使用
Nov 21 #Python
python迭代器的使用方法实例
Nov 21 #Python
python生成器的使用方法
Nov 21 #Python
You might like
PHP Mysql编程之高级技巧
2008/08/27 PHP
PHP如何抛出异常处理错误
2011/03/02 PHP
laravel如何开启跨域功能示例详解
2017/08/31 PHP
Yii2框架加载css和js文件的方法分析
2019/05/25 PHP
Laravel + Elasticsearch 实现中文搜索的方法
2020/02/02 PHP
用于table内容排序
2006/07/21 Javascript
深入理解Javascript中this的作用域
2014/08/12 Javascript
使用不同的方法结合/合并两个JS数组
2014/09/18 Javascript
JavaScript学习小结(一)——JavaScript入门基础
2015/09/02 Javascript
关于JS 预解释的相关理解
2016/06/28 Javascript
微信小程序 摇一摇抽奖简单实例实现代码
2017/01/09 Javascript
Vue学习笔记进阶篇之单元素过度
2017/07/19 Javascript
webpack实现热更新(实施同步刷新)
2017/07/28 Javascript
关于JavaScript的单双引号嵌套问题
2017/08/20 Javascript
JavaScript中Object值合并方法详解
2017/12/22 Javascript
Hexo已经看腻了,来手把手教你使用VuePress搭建个人博客
2018/04/26 Javascript
p5.js实现故宫橘猫赏秋图动画
2019/10/23 Javascript
微信小程序 scroll-view的使用案例代码详解
2020/06/11 Javascript
Python 获取当前所在目录的方法详解
2017/08/02 Python
PyQt5每天必学之事件与信号
2018/04/20 Python
详解利用django中间件django.middleware.csrf.CsrfViewMiddleware防止csrf攻击
2018/10/09 Python
Django model.py表单设置默认值允许为空的操作
2020/05/19 Python
The Hut德国站点:时装、家居用品、美容等
2016/09/23 全球购物
GUESS Factory加拿大:牛仔裤、服装及配饰
2019/09/20 全球购物
将"引用"作为函数返回值类型的格式、好处和需要遵守的规则
2016/02/09 面试题
人事专员的职责
2014/02/26 职场文书
党委班子剖析材料
2014/08/21 职场文书
学生顶撞老师的检讨书
2014/09/17 职场文书
个人四风问题对照检查材料
2014/09/26 职场文书
离婚被告答辩状
2015/05/22 职场文书
爱国主义教育基地观后感
2015/06/18 职场文书
小学二年级语文教学反思
2016/03/03 职场文书
PyTorch 如何设置随机数种子使结果可复现
2021/05/12 Python
springboot 启动如何排除某些bean的注入
2021/08/02 Java/Android
Win11如何修改dns?Win11修改dns图文教程
2022/01/18 数码科技
Nginx 匹配方式
2022/05/15 Servers