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)
相關文章
Python cookbook(數據結構與算法)通過公共鍵對字典列表排序算法示例
這篇文章主要介紹了Python cookbook(數據結構與算法)通過公共鍵對字典列表排序算法,結合實例形式分析了Python基于operator模塊中的itemgetter()函數對字典進行排序的相關操作技巧,需要的朋友可以參考下2018-03-03