python实现异步回调机制代码分享

yipeiwu_com6年前Python基础

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)

相关文章

解决webdriver.Chrome()报错:Message:'chromedriver' executable needs to be in Path

解决webdriver.Chrome()报错:Message:'chromedriver' executable needs to be in Path

'chromedriver' executable needs to be in Path 声明:本人萌新,刚学python不久记录一下自己的坑,发出来若能帮助到一些人尽早解决问题那便是...

浅谈pandas筛选出表中满足另一个表所有条件的数据方法

浅谈pandas筛选出表中满足另一个表所有条件的数据方法

今天记录一下pandas筛选出一个表中满足另一个表中所有条件的数据。例如: list1 结构:名字,ID,颜色,数量,类型。 list1 = [['a',1,255,100,'03'],...

Python深拷贝与浅拷贝用法实例分析

本文实例讲述了Python深拷贝与浅拷贝用法。分享给大家供大家参考,具体如下: 1、对象的赋值 对象的赋值实际上是对象之间的引用:当创建一个对象,然后将这个对象赋值给另外一个变量的时候,...

Django项目使用ckeditor详解(不使用admin)

Django项目使用ckeditor详解(不使用admin)

效果图: 1.安装django-ckeditor pip install django-ckeditor 如果需要上传图片或者文件,还需要安装pillow pip insta...

Python如何使用函数做字典的值

这篇文章主要介绍了Python如何使用函数做字典的值,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 当需要用到3个及以上的if...e...