跨平臺python異步回調機制實現(xiàn)和使用方法
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> 定義回調函數(shù)callback,callback需要一個參數(shù),代表請求返回數(shù)據(jù)
3> 直接調用asyncore.ds_asyncore(('127.0.0.1', 33333),callback,timeout=5),其中第一個參數(shù)是一個(ip,port)元組,第二個是回調函數(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上運行
相關文章
python中導入 train_test_split提示錯誤的解決
這篇文章主要介紹了python中導入 train_test_split提示錯誤的解決,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06Python使用difflib標準庫實現(xiàn)查找文本間的差異
在文本處理和比較中,查找文本之間的差異是一項常見的任務,本文將詳細介紹如何使用difflib模塊來查找文本之間的差異,包括單行和多行文本的比較、生成差異報告,需要的可以參考下2024-03-03python 3.6 +pyMysql 操作mysql數(shù)據(jù)庫(實例講解)
下面小編就為大家分享一篇python 3.6 +pyMysql 操作mysql數(shù)據(jù)庫的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-12-12