Thrift使用教程

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();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值