ubuntu下c++ thrift安装、配置、使用教程

一、boost安装

要用thrift必须先安装boost,thrift依赖boost库

参考:https://blog.csdn.net/faihung/article/details/88128928

1、boost下载

安装boost_1_59_0

2、执行脚本

./bootstrap.sh

3、执行./sh

sudo ./b2

4、安装 

sudo ./b2 install

二、thrift安装

版本说明:

ubuntu 16.04

thrift-0.9.3.tar.gz

1、下载thrift安装包

(1)下载安装包

(2)解压thrift安装包

 2、执行配置命令

先进入解压后的thrift安装包

 执行配置命令

ubuntu下c++ thrift安装、配置、使用教程_第1张图片

 3、执行编译指令make

ubuntu下c++ thrift安装、配置、使用教程_第2张图片

 4、执行安装命令make install

ubuntu下c++ thrift安装、配置、使用教程_第3张图片

5、 配置/etc/ld.so.conf文件

将/usr/local/lib添加到ld.so.conf文件中

vim /etc/ld.so.conf

写上如下一句:/usr/local/lib

保存退出,source /etc/ld.so.conf

此时好像还没有生效,执行一下如下语句:

ldconfig

6、查看安装结果

 

此部分参考: 

https://blog.csdn.net/Yabo0815/article/details/51773398?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-9.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-9.nonecase

 三、应用thrift

本部分参考以下链接内容:

https://www.cnblogs.com/lizhenghn/p/5247266.html

应用说明:创建一个server端和client端程序,client通过hello接口发送自己的名字,server端回复。

1、建立hello.thrift文件

文件内容如下:

service HelloService
{
    void hello(1: string name);
}

2、对hello.thrift文件编译

编译指令:

thrift --gen cpp hello.thrift

编译后生成gen-cpp目录

 

 对HelloService_server.skeleton.cpp备份,并拷贝重命名为server.cpp

3、修改server.cpp的内容

class HelloServiceHandler : virtual public HelloServiceIf {
 public:
  HelloServiceHandler() {
    // Your initialization goes here
  }

  void hello(const std::string& name) {
    // Your implementation goes here
	// 这里只简单打印出client传入的名称
    printf("hello, I got your name %s\n", name.c_str());
  }	
};

 编译server.cpp

g++ -o server hello_constants.cpp HelloService.cpp hello_types.cpp server.cpp -I/usr/local/include/thrift -L/usr/local/lib -lthrift

编译结果如下所示:

 4、编写客户端程序

编写client.cpp(此文件由自己新建)

编辑内容如下

#include 
#include 
#include "transport/TSocket.h"
#include "protocol/TBinaryProtocol.h"
#include "server/TSimpleServer.h"
#include "transport/TServerSocket.h"
#include "transport/TBufferTransports.h"
#include "hello_types.h"
#include "HelloService.h"
using namespace ::apache::thrift;
using namespace ::apache::thrift::protocol;
using namespace ::apache::thrift::transport;
using namespace ::apache::thrift::server;
using boost::shared_ptr;

int main()
{
    shared_ptr socket(new TSocket("localhost", 9090));
    shared_ptr transport(new TBufferedTransport(socket));
    shared_ptr protocol(new TBinaryProtocol(transport));
    HelloServiceClient client(protocol);
	try
	{
		transport->open();
        client.hello("cpper.info");
		transport->close();
	}
	catch(TException& tx)
	{
		printf("ERROR:%s\n",tx.what());
	}
}

5、运行测试

在一个窗口开启server

在另一个窗口开启client

 

测试结果如下所示:

测试成功! 

 

6、对以上应用做进一步分析

文件关系如下:

ubuntu下c++ thrift安装、配置、使用教程_第4张图片

 

 

你可能感兴趣的:(分布式服务框架)