在上一节《Linux 下编译 thrift》中,我们成功编译出了thrift的库文件,本节我们来编写thrift的C++服务器,客户端。
官网 https://thrift.apache.org/tutorial/cpp.html 有thrift的C++例子。在我们之前下载下来的thrift 源码根目录的tutorial/cpp目录下也有thrift的C++例子。
我们新建一个目录,将tutorial目录下的tutorial.thrift、shared.thrift和tutorial/cpp目录下的CppClient.cpp(包含客户端的主函数)、CppServer.cpp(包含服务器的主函数)拷贝到该目录中。然后执行命令:
thrift -r --gen cpp tutorial.thrift
这样就会在该目录中生成gen-cpp目录:
编写客户端编译脚本buildclient.sh:
g++ gen-cpp/Calculator.cpp gen-cpp/SharedService.cpp gen-cpp/shared_types.cpp gen-cpp/tutorial_types.cpp gen-cpp/tutorial_constants.cpp CppClient.cpp -o client -I ./gen-cpp -I /home/cjc/source/thrift-0.15.0/install/include -I /home/cjc/source/boost_1_73_0/install/include -L /home/cjc/source/thrift-0.15.0/install/lib -L /home/cjc/source/boost_1_73_0/install/lib -lthrift -lboost_atomic -lboost_chrono -lboost_date_time -lboost_filesystem -lboost_log_setup -lboost_log -lboost_regex -lboost_thread
编写客户端编译脚本buildserver.sh:
g++ gen-cpp/Calculator.cpp gen-cpp/SharedService.cpp gen-cpp/shared_types.cpp gen-cpp/tutorial_types.cpp gen-cpp/tutorial_constants.cpp CppServer.cpp -o server -I ./gen-cpp -I /home/cjc/source/thrift-0.15.0/install/include -I /home/cjc/source/boost_1_73_0/install/include -L /home/cjc/source/thrift-0.15.0/install/lib -L /home/cjc/source/boost_1_73_0/install/lib -pthread -lthrift -lboost_atomic -lboost_chrono -lboost_date_time -lboost_filesystem -lboost_log_setup -lboost_log -lboost_regex -lboost_thread
运行编译脚本编译:
chmod 777 buildclient.sh
chmod 777 buildserver.sh
./buildclient.sh
./buildserver.sh
生成client、server两个可执行文件。
然后我们分别启动两个控制台执行client、server(要先启动server,再启动client),就可以看到效果了: