Thrift使用教程

2021-07-02 20:03:49 字數 1732 閱讀 9066

structrequeststruct //定義乙個請求包結構 

structresponsestruct //定義乙個響應包結構

service sharedservice //定義乙個收發資料服務介面

(1) 先把從thrift指令碼編譯得到的**和編譯好的library新增到你的專案裡。

(2) client端使用例子: 

//建立傳輸協議,這裡用的是socket,你也可以用http等其它thrift支援的協議               

ttransport transport =newtsocket("localhost", 9090); 

//建立資料互動協議,這裡用的是binary,你也可以用jason等thrift支援的協議        

tprotocol protocol =newtbinaryprotocol(transport);        

//建立client,這個client是由thrift指令碼自動生成的  

sharedservice.client client = newsharedservice.client(protocol);        

//與伺服器互動開始        

transport.open(); 

//傳送乙個請求並等待伺服器返回結果 

//請求包是由指令碼的sendreceive介面的引數指定,下面的request就是請求包

//響應包是由指令碼的sendreceive介面的返回值指定,下面的result就是接收包 

requeststruct request = newrequeststruct        ; 

responsestruct result = client.sendreceive(request);        

//停止互動        

transport.close();

(3)server端使用例子:

//server端首先要實現iface介面,在這裡對client端的請求進行處理,返回結果資料

class

serverhandler :sharedservice.iface      

public

responsestruct

sendreceive(requeststruct request)   ; 

return result;              

}         }

//根據我們上面實現的請求處理類,建立乙個請求處理器        

serverhandler handler = newserverhandler(); 

sharedservice.processor processor = newsharedservice.processor(handler);        

//建立server端傳輸協議並監聽埠,這裡的傳輸協議要與client端一致        

tservertransport

servertransport =

newtserversocket(9090);      

//建立乙個server,你也可以用多執行緒等thrift支援的server        

tserver server =new

t******server(processor, servertransport);        

//啟動server並開始監聽        

server.serve();

thrift入門教程 thrift資料集合

apache thrift 初學小講 二 乙個簡單示例 常用的有以下三種 1 buffered 使用經典的緩衝流socket 2 framed 非阻塞server必須使用這種 基於幀的方式的socket,每個幀都是按照4位元組的幀長加上幀的內容來組織,幀內容就是我們要收發的資料。讀的時候按長度預先將...

thrift簡單使用

brew install thrift pip install thrifthelloworld.thrift string ping string say 1 string msg 執行以下命令 thrift gen py helloworld.thrift它會在當前目錄的gen目錄下生成以下檔案...

Thrift 各種server 使用模式

最近在專案中需要把客戶端的一些資訊傳送到伺服器上,聽起來是個很簡單的需求,但是實際考慮下,覺得如果自己手工實現,工作量也不小,而且盡是些繁瑣且無聊的事情,遂考慮用現成的庫來實現。對比了protocol buffer與thrift後,本著偷懶到底的原則,選擇了thrift,因為thrift本身提供了r...