Thrift跨语言样例开发
- - CSDN博客推荐文章1、有一台部署好thrift框架的电脑,本人采用centos5下的thrift框架. (部署步骤可以参看 http://blog.csdn.net/san1156/article/details/41146483 ). 2、部署的thrift环境需要支持java和c++. 使用c++做服务端,java做客户端,客户端远程调用服务端的服务.
(部署步骤可以参看 http://blog.csdn.net/san1156/article/details/41146483 )
文件名:strReversed.thrift struct StrInfo { 1: string str, } service StrScheduler{ bool addStr(1:StrInfo str), StrInfo getStr() }
编译语句: thrift -gen cpp strReversed.thrift thrift -gen java strReversed.thrift
gen-cpp下文件列表: -rw-r--r-- 1 root root 281 Apr 9 15:05 strReversed_constants.cpp -rw-r--r-- 1 root root 375 Apr 9 15:05 strReversed_constants.h -rw-r--r-- 1 root root 1619 Apr 9 15:05 strReversed_types.cpp -rw-r--r-- 1 root root 1230 Apr 9 15:05 strReversed_types.h -rw-r--r-- 1 root root 16679 Apr 9 15:05 StrScheduler.cpp -rw-r--r-- 1 root root 9410 Apr 9 15:05 StrScheduler.h -rw-r--r-- 1 root root 4715 May 11 16:13 StrScheduler_server.skeleton.cpp
gen-java下文件列表: -rw-r--r-- 1 root root 10754 May 11 15:28 StrInfo.java -rw-r--r-- 1 root root 50847 May 11 15:28 StrScheduler.java
修改文件列表 C++服务端: StrScheduler_server.skeleton.cpp java客户端:增加文件 JavaClient.java
例如:
C++:g++ -DHAVE_NETINET_IN_H -I/usr/local/include/thrift -I/usr/local/include/boost -I../gen-cpp -L/usr/local/lib/ -lthrift strReversed_constants.cpp strReversed_types.cpp StrScheduler.cpp StrScheduler_server.skeleton.cpp -o CppServer
Java:javac *.java
类型 描述 bool true, false byte 8位的有符号整数 i16 16位的有符号整数 i32 32位的有符号整数 i64 64位的有符号整数 double 64位的浮点数 string UTF-8编码的字符串 binary 字符数组 struct 结构体 list 有序的元素列表,类似于STL的vector set 无序的不重复元素集,类似于STL的set map key-value型的映射,类似于STL的map exception 是一个继承于本地语言的exception基类 service 服务,包含多个函数接口(纯虚函数)
g++ -DHAVE_NETINET_IN_H -I/usr/local/include/thrift -I/usr/local/include/boost -I../gen-cpp -L/usr/local/lib/ -lthrift strReversed_constants.cpp strReversed_types.cpp StrScheduler.cpp client.cpp -o CppClient