跨平台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中的多进程、多线程、协程
Jun 22 Python
一个基于flask的web应用诞生 记录用户账户登录状态(6)
Apr 11 Python
python 获取list特定元素下标的实例讲解
Apr 09 Python
Python实现读取字符串按列分配后按行输出示例
Apr 17 Python
Python WEB应用部署的实现方法
Jan 02 Python
浅谈Python 多进程默认不能共享全局变量的问题
Jan 11 Python
Python实现账号密码输错三次即锁定功能简单示例
Mar 29 Python
Python常见读写文件操作实例总结【文本、json、csv、pdf等】
Apr 15 Python
python3读取图片并灰度化图片的四种方法(OpenCV、PIL.Image、TensorFlow方法)总结
Jul 04 Python
Pytorch实现各种2d卷积示例
Dec 30 Python
python数据爬下来保存的位置
Feb 17 Python
Python递归调用实现数字累加的代码
Feb 25 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中的串行化变量和序列化对象
2006/09/05 PHP
php mysql数据库操作分页类
2008/06/04 PHP
解析php二分法查找数组是否包含某一元素
2013/05/23 PHP
PHP_NETWORK_GETADDRESSES: GETADDRINFO FAILED问题解决办法
2014/05/04 PHP
jQuery向下滚动即时加载内容实现的瀑布流效果
2016/01/07 PHP
PHP将英文数字转换为阿拉伯数字实例讲解
2019/01/28 PHP
PHP 99乘法表的几种实现代码
2020/10/13 PHP
javascript写的日历类(基于pj)
2010/12/28 Javascript
js+csss实现的一个带复选框的下拉框
2014/09/29 Javascript
javascript入门教程基础篇
2015/11/16 Javascript
Vue-router 类似Vuex实现组件化开发的示例
2017/09/15 Javascript
Vim快速合并行及vim 将文件所有行合并到一行
2017/11/27 Javascript
Vue组件中prop属性使用说明实例代码详解
2018/05/31 Javascript
vue-cli3脚手架的配置及使用教程
2018/08/28 Javascript
小程序云开发实战小结
2018/10/25 Javascript
angular 用Observable实现异步调用的方法
2018/12/27 Javascript
vuex页面刷新后数据丢失的方法
2019/01/17 Javascript
在layui中对table中的数据进行判断(0、1)转换为提示信息的方法
2019/09/28 Javascript
[03:38]2014DOTA2西雅图国际邀请赛 VG战队巡礼
2014/07/07 DOTA
[01:02:55]CHAOS vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
Python中使用ConfigParser解析ini配置文件实例
2014/08/30 Python
Python+django实现文件上传
2016/01/17 Python
python3.5 tkinter实现页面跳转
2018/01/30 Python
python+opencv打开摄像头,保存视频、拍照功能的实现方法
2019/01/08 Python
Python中six模块基础用法
2019/12/08 Python
python中count函数简单的实例讲解
2020/02/06 Python
俄罗斯和世界各地的酒店预订:Hotels.com俄罗斯
2016/08/19 全球购物
Probikekit欧盟:在线公路自行车专家
2019/07/12 全球购物
输入N,打印N*N矩阵
2012/02/20 面试题
运动会入场词60字
2014/02/15 职场文书
一岗双责责任书
2014/04/15 职场文书
教师党员批评与自我批评
2014/10/15 职场文书
幼儿园个人师德总结
2015/02/06 职场文书
解决pytorch读取自制数据集出现过的问题
2021/05/31 Python
vue elementUI批量上传文件
2022/04/26 Vue.js
MySQL如何修改字段类型和字段长度
2022/06/10 MySQL