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...