thrift windows vs2013测试例子
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了thrift windows vs2013测试例子,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2613字,纯文字阅读大概需要4分钟。
内容图文
首先需要编译thrift的compiler
源代码目录在:
\thrift-master\compiler\cpp
原来是vs2010的功能,用vs2013打开之后会提示升级,因为这只是一个工具,所以不需要升级,直接编译得到需要的exe
编译之后得到一个thrift.exe,这个工具可以把中间代码生成对应的目标代码
生成需要的测试代码
在thrift.exe的目录中新建一个记事本,粘贴如下内容保存,之后把文件名改成student.thrift:
<span style="font-size:18px;">struct Student{ i32 sno, string sname, bool ssex, i16 sage, } service Serv{ void put(1: Student s), } </span>
在终端中输入以下命令:
<span style="font-size:18px;">thrift.exe -r --gen cpp student.thrift</span>
在解决方案thrift中新建一个Server工程
把文件夹gen-cpp拷贝过去,文件夹目录的构成如下:
![技术分享](/upload/getfiles/default/2022/11/10/20221110040128037.jpg)
在工程目录中引入gen-cpp中的.h和.cpp:
![技术分享](/upload/getfiles/default/2022/11/10/20221110040128223.jpg)
把上面红框中.cpp文件中的内容拷贝到Server.cpp中,然后移除,加入对应的.lib:
![技术分享](/upload/getfiles/default/2022/11/10/20221110040128491.jpg)
因为打算把Client发送的内容在Server一端中打印出来,所以在默认的ServHandler中修改对应的put方法内容为:
printf("sno=%d sname=%s ssex=%dsage=%d/n", s.sno, s.sname.c_str(), s.ssex, s.sage);
![技术分享](/upload/getfiles/default/2022/11/10/20221110040128710.jpg)
在工程中设置对应的头文件目录,可以参考我的:
gen-cpp;..\cpp\src;..\cpp\openssl-1.0.1e;D:\boost_1_57_0;
库目录:
D:\boost\boost_1_57_0\bin\vc12-x64\lib;
同样的再新建一个Client工程
同样的可以参考3,也需要去掉
把文件夹gen-cpp拷贝过去,在把\thrift-master\tutorial\cpp目录下的CppClient.cpp也拷贝过去
文件夹目录的构成如下:
![技术分享](/upload/getfiles/default/2022/11/10/20221110040128956.jpg)
工程目录如下:
![技术分享](/upload/getfiles/default/2022/11/10/20221110040129149.jpg)
在工程中直接删掉进行Serv_server.skeleton.cpp,对Clien.cpp加入如下代码:
#include <thrift/transport/TSocket.h> #include "Serv.h" #include <thrift/protocol/TBinaryProtocol.h> #include <thrift/server/TSimpleServer.h> #include <thrift/transport/TServerSocket.h> #include <thrift/transport/TBufferTransports.h> #include <string> using namespace ::apache::thrift; using namespace ::apache::thrift::protocol; using namespace ::apache::thrift::transport; using namespace ::apache::thrift::server; using boost::shared_ptr; #pragma comment(lib, "../lib/x64/libthrift.lib") #pragma comment(lib, "../lib/x64/libthriftnb.lib") #pragma comment(lib, "../lib/x64/libeay32.lib") #pragma comment(lib, "../lib/x64/ssleay32.lib") int main(int argc, char** argv) { int port = 9090; shared_ptr<TTransport> socket(new TSocket("127.0.0.1", 60010)); shared_ptr<TTransport> transport(new TBufferedTransport(socket)); shared_ptr<TProtocol> protocol(new TBinaryProtocol(transport)); ServClient client(protocol); Student s; s.sno = 123; s.sname = " zengraoli"; s.ssex = 1; s.sage = 30; try{ transport->open(); client.put(s); transport->close(); } catch (TException& tx){ printf("ERROR:%s\n", tx.what()); } getchar(); return 0; }
在工程中设置对应的头文件目录,可以参考我的:
gen-cpp;..\src;..\cpp\openssl-1.0.1e;D:\boost_1_57_0;
库目录:
D:\boost\boost_1_57_0\bin\vc12-x64\lib;
开始测试
首先打开Server运行:
![技术分享](/upload/getfiles/default/2022/11/10/20221110040129364.jpg)
然后再打开Client,服务器的消息如下:
整个工程(含lib库、测试例子、libevent、openssl)下载地址
http://download.csdn.net/detail/zengraoli/9510383
原文:http://blog.csdn.net/zengraoli/article/details/51320773
内容总结
以上是互联网集市为您收集整理的thrift windows vs2013测试例子全部内容,希望文章能够帮你解决thrift windows vs2013测试例子所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。