跨平臺python異步回調(diào)機(jī)制實(shí)現(xiàn)和使用方法
1 將下面代碼拷貝到一個(gè)文件,命名為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> 導(dǎo)入asyncore
2> 定義回調(diào)函數(shù)callback,callback需要一個(gè)參數(shù),代表請求返回?cái)?shù)據(jù)
3> 直接調(diào)用asyncore.ds_asyncore(('127.0.0.1', 33333),callback,timeout=5),其中第一個(gè)參數(shù)是一個(gè)(ip,port)元組,第二個(gè)是回調(diào)函數(shù),第三個(gè)是超時(shí)時(shí)間。
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上運(yùn)行
相關(guān)文章
python中導(dǎo)入 train_test_split提示錯(cuò)誤的解決
這篇文章主要介紹了python中導(dǎo)入 train_test_split提示錯(cuò)誤的解決,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06Python使用difflib標(biāo)準(zhǔn)庫實(shí)現(xiàn)查找文本間的差異
在文本處理和比較中,查找文本之間的差異是一項(xiàng)常見的任務(wù),本文將詳細(xì)介紹如何使用difflib模塊來查找文本之間的差異,包括單行和多行文本的比較、生成差異報(bào)告,需要的可以參考下2024-03-03python 3.6 +pyMysql 操作mysql數(shù)據(jù)庫(實(shí)例講解)
下面小編就為大家分享一篇python 3.6 +pyMysql 操作mysql數(shù)據(jù)庫的實(shí)例講解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-12-12Python使用Flask框架實(shí)現(xiàn)文件上傳實(shí)例
這篇文章主要介紹了Python使用Flask庫文件上傳實(shí)例,用?Flask?處理文件上傳很容易,只要確保HTML表單中設(shè)置enctype="multipart/form-data"屬性就可以了,需要的朋友可以參考下2023-08-08詳解Golang 與python中的字符串反轉(zhuǎn)
這篇文章主要介紹了詳解Golang 與python中的字符串反轉(zhuǎn)的相關(guān)資料,這里提供了實(shí)現(xiàn)的實(shí)例以便大家學(xué)習(xí)理解,需要的朋友可以參考下2017-07-07Python完全識別驗(yàn)證碼自動登錄實(shí)例詳解
今天小編就為大家分享一篇Python完全識別驗(yàn)證碼自動登錄實(shí)例詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11