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

yipeiwu_com5年前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)

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

相关文章

python调试神器PySnooper的使用

相信很多小伙伴平时写python的时候都是需要调试程序的,出问题了,需要了解函数内部是怎么跑的,而这个时候很多人都会想到在疑惑的地方使用print函数来打印一下参数来调试。虽然用prin...

如何用Python制作微信好友个性签名词云图

如何用Python制作微信好友个性签名词云图

前言 上次查看了微信好友的位置信息,想了想,还是不过瘾,于是就琢磨起了把微信好友的个性签名拿到,然后分词,接着分析词频,最后弄出词云图来。 1.环境说明 Win10 系统下 Pyt...

Python的Flask框架中实现登录用户的个人资料和头像的教程

Python的Flask框架中实现登录用户的个人资料和头像的教程

用户资料页面 在用户资料页面,基本上没有什么特别要强调和介绍的新概念。只需要创建一个含有HTML的新视图函数模板页面即可。 下面是视图函数(项目目录/views.py):  ...

python+pillow绘制矩阵盖尔圆简单实例

python+pillow绘制矩阵盖尔圆简单实例

本文主要研究的是使用Python+pillow绘制矩阵盖尔圆的一个实例,具体如下。 盖尔圆是矩阵特征值估计时常用的方法之一,其定义为: 与盖尔圆有关的两个定理为: 定理1:矩阵A的所有特...

Python中文件遍历的两种方法

关于Python的文件遍历,大概有两种方法,一种是较为便利的os.walk(),还有一种是利用os.listdir()递归遍历。 方法一:利用os.walk os.walk可以自顶向下或...