Thrift使用入門(2) - 用Thrift實現一個簡單的Server/Client應用程式
Thrift可以實現C++、Java、Python等多種語言的自動生成,此處以C++為例。
本文共5部分,其中1,2和3部分為重點。
1. 編寫[.thrift]檔案
你可以google到官方的例項如下:
struct Student{
1: i32 sno,
2: string sname,
3: bool ssex,
4: i16 sage,
}
service Serv{
void put(1: Student s),
}
將上述程式碼儲存為student.thrift檔案。
2. 自動生成伺服器端程式
在Terminal中輸入如下命令,可自動生成[.cpp]和[.h]檔案。
thrift -r --gen cpp student.thrift
得到的檔案如下:
Serv.cpp
Serv.h
Serv_server.skeleton.cpp
student_constants.cpp
student_constants.h
student_types.cpp
student_types.h
其中Serv_server.skeleton.cpp中有伺服器端執行的main函式。這些檔名的Serv和student與你最初建立的thrift檔案有關。
3. 編寫客戶端程式
#include "Serv.h" // Your .h File
#include <transport/TSocket.h>
#include <transport/TBufferTransports.h>
#include <protocol/TBinaryProtocol.h>
using namespace apache::thrift;
using namespace apache::thrift::protocol;
using namespace apache::thrift::transport;
using boost::shared_ptr;
int main(int argc, char **argv) {
boost::shared_ptr<TSocket> socket(new TSocket("localhost", 9090));
boost::shared_ptr<TTransport> transport(new TBufferedTransport(socket));
boost::shared_ptr<TProtocol> protocol(new TBinaryProtocol(transport));
transport->open();
// Your Codes
transport->close();
return 0;
}
4. 編譯/連結
g++ -g -I/home/michael/opt/include/thrift -L/home/michael/opt/lib/ -lthrift Serv.cpp student_types.cpp student_constants.cpp Serv_server.skeleton.cpp -o server
g++ -g -I/home/michael/opt/include/thrift -L/home/michael/opt/lib/ -lthrift -lm -pthread -lz -lrt -lssl Serv.cpp student_types.cpp student_constants.cpp client.cpp -o client
5. 執行
./server
./client
相關文章
- Thrift使用入門(1) - Thrift概述及其安裝
- Thrift 入門教程
- Thrift RPC Client 流程RPCclient
- Spring Boot 中使用 thrift 入門Spring Boot
- Thrift IDL 快速入門
- 一個用C#實現的簡單http server (轉)C#HTTPServer
- Spring Cloud整合Thrift RPC(二) - 應用案例SpringCloudRPC
- 用java實現一個簡單的房屋管理程式。 (轉)Java
- 用 go 實現一個簡單的 mvcGoMVC
- CSharp使用Thrift作為RPC框架入門(一)CSharpRPC框架
- 200 行程式碼實現一個簡單的區塊鏈應用行程區塊鏈
- Thrift server端的幾種工作模式分析Server模式
- Thrift示例
- React 實現一個簡單實用的 Form 元件ReactORM元件
- 用canvas實現一個簡單的畫板Canvas
- Thrift RPC 系列教程(1)——Thrift語言RPC
- 一個簡單的iptable的應用
- RxJava2 實戰知識梳理(15) 實現一個簡單的 MVP + RxJava + Retrofit 應用RxJavaMVP
- 用 Swift 實現一個簡單版 ReactSwiftReact
- 對Thrift的一點點理解
- 用React實現一個簡易的markdown部落格應用React
- 用Java程式碼實現一個簡單的聊天室功能Java
- 一個簡單的 indexedDB 應用示例Index
- ImportError: No module named thrift.Thrift問題解決ImportError
- 用JavaScript實現一門程式語言 2 (λanguage語言簡介)JavaScript
- 用java實現一個簡單的區塊鏈Java區塊鏈
- 用java實現一個簡單的計算器Java
- thrift安裝
- Thrift c#C#
- [譯]使用 Rust 開發一個簡單的 Web 應用,第 2a 部分RustWeb
- Webpack4 入門到帶你打包一個簡單單頁應用專案Web
- 用 Vue 建立一個簡單的 electron 桌面應用Vue
- Java 在Client/Server 中應用JavaclientServer
- rpc框架之thrift連線池實現RPC框架
- 實現一個簡單的基於 WebAssembly 的圖片處理應用Web
- Storm-原始碼分析-Thrift的使用ORM原始碼
- 試著用Proxy 實現一個簡單mvvmMVVM
- 百度地圖API入門——(2)第二個超簡單應用:Hello, World!地圖API