跨平臺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上運行
相關文章
一文詳解如何從根本上優(yōu)雅地解決VSCode中的Python模塊導入問題
有時你可能會遇到這種問題,明明用pip安裝好了一個python模塊,但在VScode中總是顯示錯誤,這篇文章主要給大家介紹了關于如何從根本上優(yōu)雅地解決VSCode中的Python模塊導入問題的相關資料,需要的朋友可以參考下2024-07-07

