亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

四步完成跨平臺調用——thrift的開發應用 - Bir

系統 2412 0

四步完成跨平臺調用——thrift的開發應用 - Birdshover - 博客園

四步完成跨平臺調用——thrift的開發應用

一、安裝thrift

首先,你要有個Linux平臺,反正安裝好了就行,用不著太多的東西。

?

thrift這個東東可以在http://www.thrift-rpc.org/下載。

具體在http://www.thrift-rpc.org/?p=thrift.git;a=shortlog;h=refs/misc/instant,一般點第一個snapshot就行了,這是最新的。版本幾個小時更新一個,太牛叉了。

接下來,安裝thrift。到thrift的解壓目錄,執行命令:

#chmod +x *? //設置執行權限

#./bootstrap.sh

#./configure

#make

#make install

二、確定接口

平臺與平臺的方法調用或數據交換,需要依賴一組結構和一些方法。需要定義好這個方法,才可以進行接下來的開發。比如,我現在需要通過C#調用Java。如果說Java的服務端已經開發好了,那就非常像是適配器模式了。

現在書寫一個簡單的接口:

service ThriftTest
{
?void work();
?i32 test(1:string s);
}

service ThriftTest

{

????????? void work();

????????? i32 test(1:string s);

}

(注:復雜一些的接口可以參考下載來包里的thrift\test目錄下的*.thrift文件。)

現在開始生成代碼:

# /home/xieping/thrift/compiler/cpp/thrift -gen java test.thrift

# /home/xieping/thrift/compiler/cpp/thrift -gen csharp test.thrift

分別生成了java和csharp的應用,在gen-java和gen-csharp目錄下。

三、開發服務端

把Java下的ThriftTest類拷貝到項目中,注意添加package。定義服務類ThriftServer,實現ThriftTest.Iface接口。(項目需要引用thrift\lib\java\src里的項目。同時需要引用slf4j-log4j12-1.5.11.jar,slf4j-api-1.5.11.jar,log4j-1.3alpha-8.jar三個包。)

import org.apache.thrift.TException;

public class ThriftServer implements ThriftTest.Iface {

@Override

public int test(String s) throws TException {

// TODO Auto-generated method stub

return Integer.parseInt(s);

}

@Override

public void work() throws TException {

// TODO Auto-generated method stub

System.out.println("ccc");

}

}

在main方法中寫入:

try {

ThriftServer t = new ThriftServer();

ThriftTest.Processor p = new ThriftTest.Processor(t);

???? TServerTransport serverTransport = new TServerSocket(9090);

???? TServer server = new TThreadPoolServer(p, serverTransport);

???? // Use this for a multithreaded server

???? // server = new TThreadPoolServer(processor, serverTransport);

???? System.out.println("Starting the server...");

???? server.serve();

?? } catch (Exception x) {

???? x.printStackTrace();

?? }

?? System.out.println("done.");

這里的Server有好幾種,我使用了TThreadPoolServer.運行,服務端就OK了。

四、客戶端調用

客戶端把gen-csharp里的類,拷貝到項目中。引用thrift\lib\csharp\src里的項目。

然后編寫代碼:

static void Main(string[] args) {

TTransport transport = new TSocket("localhost",9090);

TProtocol protocol = new TBinaryProtocol(transport);

ThriftTest.Client client = new ThriftTest.Client(protocol);

transport.Open();

int val = client.test("1213");

client.work();

transport.Close();

Console.WriteLine(val);

}

運行,出結果了。

四步就完成了通過Thrift跨平臺調用的目的。Java和C#還好些,php調用Java的相對來說使用上更廣泛一些。

分類: .Net language and other

四步完成跨平臺調用——thrift的開發應用 - Birdshover - 博客園


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: www四虎影院 | 亚洲欧美日韩不卡一区二区三区 | 国产不卡视频在线观看 | 狠狠色狠狠色综合日日32 | 看一级特黄a大片日本片黑人 | 韩国亚洲伊人久久综合影院 | 国产成在线观看免费视频成本人 | 国产骚熟| 亚洲欧美日本视频 | 天天cao| 国产精品亚欧美一区二区三区 | 猫咪www免费人成在线观看网址 | 亚洲精品一区二区三区在线看 | 亚洲精品福利在线观看 | 欧美大片天天免费看视频 | 久久视频在线 | 亚洲国产精品a一区 | 欧美一区二区三区视频在线 | 亚洲国产精品热久久2022 | 欧美亚洲欧美日韩中文二区 | 国内偷自视频区视频综合 | 久久国产免费福利资源网站 | 国产精品伦一区二区三级视频 | 久草视频官网 | 国产凹凸在线一区二区色老头 | 99热这里有免费国产精品 | 一本一本久久α久久精品66 | 日韩久久网 | 天天曰天天干天天操 | 暴力欧美娇小 videos | 成年女人毛片 | 人做人爱视频欧美在线观看 | 欧美 亚洲 中文字幕 | 欧美日韩不卡中文字幕在线 | 亚洲干综合 | 麻豆国内精品欧美在线 | 黄色毛片视频网站 | 国语偷拍视频在线观看 | 九九精品免费观看在线 | 久久成年人 | 国产精品久久久久久久午夜片 |