thrift windows vs2013测试例子

首先需要编译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>

得到我们需要的文件夹gen-cpp,其中就是thrfit命令生成的代码

在解决方案thrift中新建一个Server工程

把文件夹gen-cpp拷贝过去,文件夹目录的构成如下:

在工程目录中引入gen-cpp中的.h和.cpp:

把上面红框中.cpp文件中的内容拷贝到Server.cpp中,然后移除,加入对应的.lib:

因为打算把Client发送的内容在Server一端中打印出来,所以在默认的ServHandler中修改对应的put方法内容为:

printf("sno=%d sname=%s ssex=%dsage=%d/n", s.sno, s.sname.c_str(), s.ssex, s.sage);

在工程中设置对应的头文件目录,可以参考我的:

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也拷贝过去

文件夹目录的构成如下:

工程目录如下:

在工程中直接删掉进行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运行:

然后再打开Client,服务器的消息如下:

整个工程(含lib库、测试例子、libevent、openssl)下载地址

http://download.csdn.net/detail/zengraoli/9510383

时间: 2024-11-09 23:25:24

thrift windows vs2013测试例子的相关文章

为初学者写三层,三层的搭建和测试例子

三层搭建过程   第一步打开vs,然后点击新建—---项目—----其它项目类型-------空白解决方案.如下图! (备注右上角是你建立的版本是3.5 的还是2.0的,这里选择的是3.5的) 注意1:名称可以重命名,这个地方我命名的是Test_Example. 注意2:存放位置自己选择一个新路径,便于以后的查找.   然后点击确认按钮提交: 这样出现一个下图的空白解决方案.   第二步:我们建立一个数据访问层:首先如上图中选中空白解决方案,然后右键----添加-----  然后选择新建项目--

windows的路由例子

一.不同网卡不同网关 wlan:192.168.100.1/24 wifi:192.168.8.1/24 1.如果想要特定的ip访问wifi网络 可以用 route add 1.2.3.4 mask 255.255.255.255 192.168.8.1 metric 1 把1.2.3.4这个ip地址出口网卡设置为wifi 2.如果想所有的ip地址都访问wifi,可以用 route delete 0.0.0.0 route add 0.0.0.0 mask 0.0.0.0 192.168.8.1

vs缩进多行,vs2013测试可用

选中要缩进的行,然后点击tab会直接在选中行增大缩进 快捷键 功能 描述 tab 增大缩进 选中要缩进的行,可多行 shift + table 减小缩进 选中要缩进的行,可多行 vs缩进多行,vs2013测试可用,布布扣,bubuko.com

[转] Windows+VS2013爆详细Caffe编译安装教程

转 Windows+VS2013爆详细Caffe编译安装教程 1. 安装cuda Cuda是英伟达推出的GPU加速运算平台 我这里安装的是cuda7.5,已经安装过的忽略,还没有安装过的这里有安装教程.windows下面安装还是非常简单的. 点击打开链接    (我的显卡是1080 现在支持cuda8.0 所以我下的是8.0) 2. 下载cuDNN(其实是个压缩包)  注意现在8.0出来了,我下的是cuDNN v5 (May 27, 2016), for CUDA 8.0 RC https://

实际测试例子+源码分析的方式解剖MyBatis缓存的概念

前言: 前方高能! 本文内容有点多,通过实际测试例子+源码分析的方式解剖MyBatis缓存的概念,对这方面有兴趣的小伙伴请继续看下去~ MyBatis缓存介绍首先看一段wiki上关于MyBatis缓存的介绍: MyBatis支持声明式数据缓存(declarative data caching).当一条SQL语句被标记为"可缓存"后,首次执行它时从数据库获取的所有数据会被存储在一段高速缓存中,今后执行这条语句时就会从高速缓存中读取结果,而不是再次命中数据库.MyBatis提供了默认下基于

windows环境测试IP地址是否通

windows环境测试IP地址是否通脚本 @echo off rem 循环ping IP地址,并打印出IP对应的名称 FOR /F "eol=; tokens=1,2* delims=, " %%i in (ip.txt) do (ping -w 30 -n 1 %%i && echo %%i %%j >> ok.txt || echo %%i %%j >> no.txt) rem eol=c - 指一个行注释字符的结尾(就一个) rem ski

WINDOWS+VS2013下生成caffe并进行cifar10分类测试

http://blog.csdn.net/naaaa/article/details/52118437 标签: windowsvs2013caffecifar10 2016-08-04 15:33 1316人阅读 评论(1) 收藏 举报  分类: caffe 版权声明:本文为博主原创文章,未经博主允许不得转载. 1.下载vs2013,安装 http://download.microsoft.com/download/0/7/5/0755898A-ED1B-4E11-BC04-6B9B7D82B1

LevelDB windows vs2013 c++编译和测试

引用: (src1) :http://download.csdn.net/detail/flyfish1986/8881263(这里有下载地址) (src2) :http://blog.csdn.net/flyfish1986/article/details/46806893 记录下,方便以后查阅. 之前在JAVA下用的LevelDB,应为公司有个项目,对接口的返回时间有着比较高的要求,但公司用的是MSSQL,数据量比较大,估计10亿左右的数据.接口要求的返回时间是20ms以内. LevelDB

Jmeter负载测试例子

通过浏览器操作网站在jmeter录屏控制器显示录屏例子,并且通过这例子模拟多用户(线程)来负载测试. 工具/原料 Jmeter 浏览器 1.先在测试计划创建线程组和录制Case 1 1.1 选择测试计划 2 1.2创建线程组 3 1.3创建录制控制器 4 1.4结果如下: END 2.先在jmeter设置代理服务器 1 2.1 在工作台建立代理服务器 2 2.2结果如下: 3 (注意默认端口是8080,当然可以改) 4 目标控制器是选择刚才的录制控制器,分组选择(每个组放入一个新的控制器) 5