structRequestStruct {
1: i32 requestId
2: i32 requestData
}//定义一个请求包结构
structResponseStruct {
1: i32 requestId
2: string responseData
}//定义一个响应包结构
service SharedService {
ResponseStructSendReceive(1: RequestStruct request)
}//定义一个收发数据服务接口
(1) 先把从thrift脚本编译得到的代码和编译好的Library添加到你的项目里。
(2) Client端使用例子:
//创建传输协议,这里用的是Socket,你也可以用Http等其它Thrift支持的协议
TTransport transport =newTSocket("localhost", 9090);
//创建数据交互协议,这里用的是Binary,你也可以用Jason等Thrift支持的协议
TProtocol protocol =newTBinaryProtocol(transport);
//创建client,这个Client是由thrift脚本自动生成的
SharedService.Client client = newSharedService.Client(protocol);
//与服务器交互开始
transport.Open();
//发送一个请求并等待服务器返回结果
//请求包是由脚本的SendReceive接口的参数指定,下面的request就是请求包
//响应包是由脚本的SendReceive接口的返回值指定,下面的result就是接收包
RequestStruct request = newRequestStruct {
RequestId= 0,
RequestData= 1
};
ResponseStruct result = client.SendReceive(request);
//停止交互
transport.Close();
(3)Server端使用例子:
//Server端首先要实现Iface接口,在这里对client端的请求进行处理,返回结果数据
class ServerHandler :SharedService.Iface
{
public ServerHandler(){}
public ResponseStruct SendReceive(RequestStruct request)
{
ResponseStruct result = newResponseStruct()
{
RequestId = request.RequestId,
RequestData ="This is a return value from server"
};
return result;
}
}
//根据我们上面实现的请求处理类,创建一个请求处理器
ServerHandler handler = newServerHandler();
SharedService.Processor processor = newSharedService.Processor(handler);
//创建Server端传输协议并监听端口,这里的传输协议要与client端一致
TServerTransport serverTransport = new TServerSocket(9090);
//创建一个server,你也可以用多线程等Thrift支持的Server
TServer server =new TSimpleServer(processor, serverTransport);
//启动server并开始监听
server.Serve();