【Thrift入门】QT实现Thrift C++服务端和客户端

本文介绍如何在QT环境中使用Thrift库构建C++服务端和客户端。通过在同一QT程序中分别开启服务端和客户端线程进行交互,详细阐述了QT调用Thrift库的步骤,服务端和客户端的核心代码,以及如何在QT界面操作进行测试。
摘要由CSDN通过智能技术生成

效果示例

在这里插入图片描述
本文为了测试和显示方便,将Thrift客户端和服务端编写在同一QT程序中,分别开启一个线程进行交互。

测试操作:
点击“开启服务”,开启Thrift服务端的监听;在“测试数据”的输入框中输入测试消息,点击“请求服务”发送给服务端进行处理;并把服务端的返回结果显示在“返回结果”的输出框中。

QT调用Thrift库

编译VS2015 x64版本的Thrift静态库,并在QT工程的.pro文件中添加:

INCLUDEPATH 	+= $$PWD \
                   $YOUR_THRIFT_PATH/thrift

LIBS += $YOUR_THRIFT_PATH/thrift/lib/libthrift_x64.lib

如果报boost相关库的LNK2019错误,需要在QT路径中添加boost库,如:
把boost的头文件拷贝到:

$PATH_TO_QT\Qt5.8.0\5.8\msvc2015_64\include\

把boost的库文件拷贝到:

$PATH_TO_QT\Qt5.8.0\5.8\msvc2015_64\lib\

服务端核心代码

创建ThriftServer类,继承自QObject,用于封装Thrift服务端操作。
点击UI界面的“开启服务”,发送信号开启服务端的监听,调用ThriftServer类的serve函数。

void ThriftServer::serve()
{
   
    int port = 9000;
    ::apache::thrift::stdcxx::shared_ptr<PSMPServerHandler> handler(new PSMPServerHandler());
    ::apache::thrift::stdcxx::shared_ptr<TProcessor> processor(new PSMPServerProcessor(handler));
    ::apache::thrift::stdcxx::shared_ptr<TServerTransport> serverTransport(new TServerSocket(port));
    ::apache::thrift::stdcxx::shared_ptr<TTransportFactory> transportFactory
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值