Thrift使用入门(2) - 用Thrift实现一个简单的Server/Client应用程序
2012-03-20 00:00
836 查看
Thrift可以实现C++、Java、Python等多种语言的自动生成,此处以C++为例。
本文共5部分,其中1,2和3部分为重点。
1. 编写[.thrift]文件
你可以google到官方的实例如下:
将上述代码保存为student.thrift文件。
2. 自动生成服务器端程序
在Terminal中输入如下命令,可自动生成[.cpp]和[.h]文件。
得到的文件如下:
其中Serv_server.skeleton.cpp中有服务器端运行的main函数。这些文件名的Serv和student与你最初创建的thrift文件有关。
3. 编写客户端程序
4. 编译/链接
5. 运行
$(document).ready(function(){dp.SyntaxHighlighter.HighlightAll('code');});
原文链接:
http://blog.csdn.net/poechant/article/details/6618284
本文共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
$(document).ready(function(){dp.SyntaxHighlighter.HighlightAll('code');});
原文链接:
http://blog.csdn.net/poechant/article/details/6618284
相关文章推荐
- Thrift使用入门(2) - 用Thrift实现一个简单的Server/Client应用程序
- SignalR代理对象异常:Uncaught TypeError: Cannot read property 'client' of undefined 推出的结论 SignalR 简单示例 通过三个DEMO学会SignalR的三种实现方式 SignalR推送框架两个项目永久连接通讯使用 SignalR 集线器简单实例2 用SignalR创建实时永久长连接异步网络应用程序
- 简单的Client / Server 使用 linux 伯克利 socket实现
- 使用thrift实现了Javaserver和nodejsclient之间的跨平台通信
- 2016windows(10) wamp 最简单30分钟thrift入门使用讲解,实现php作为服务器和客户端的hello world
- 使用Java实现简单的server/client回显功能的方法介绍
- 使用Java实现简单的server/client回显功能的方法介绍
- 简单的Client / Server 使用 linux 伯克利 socket实现 编辑
- 使用Java实现简单的server/client回显功能的方法介绍
- php使用face++实现一个简单的人脸识别系统
- Codewars简单使用和 其中一道题,用JavaScript实现一个函数,求一个正数的次大数字,拿自己的解法和大神相比,简直对不起JavaScript给我提供的 那么多便利
- 使用MongoDB和JSP实现一个简单的购物车系统实例
- 使用Akka实现一个简单的RPC框架(一)
- 使用Node.js + MongoDB实现一个简单的日志分析系统
- 使用list实现一个简单的Listener管理
- [000]socket通信--server和client实现的简单例子
- iOS开发UI篇—使用xib自定义UItableviewcell实现一个简单的团购应用界面布局
- ios开发UI篇—使用纯代码自定义UItableviewcell实现一个简单的微博界面布局
- 使用nRF51822/nRF51422创建一个简单的BLE应用 ---入门实例手册(中文)之五
- 使用两个栈来实现一个队列简单的push和pop