欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

四步完成跨平臺調(diào)用——thrift的開發(fā)應(yīng)用 - Bir

系統(tǒng) 2188 0

四步完成跨平臺調(diào)用——thrift的開發(fā)應(yīng)用 - Birdshover - 博客園

四步完成跨平臺調(diào)用——thrift的開發(fā)應(yīng)用

一、安裝thrift

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

?

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

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

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

#chmod +x *? //設(shè)置執(zhí)行權(quán)限

#./bootstrap.sh

#./configure

#make

#make install

二、確定接口

平臺與平臺的方法調(diào)用或數(shù)據(jù)交換,需要依賴一組結(jié)構(gòu)和一些方法。需要定義好這個方法,才可以進(jìn)行接下來的開發(fā)。比如,我現(xiàn)在需要通過C#調(diào)用Java。如果說Java的服務(wù)端已經(jīng)開發(fā)好了,那就非常像是適配器模式了。

現(xiàn)在書寫一個簡單的接口:

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

service ThriftTest

{

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

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

}

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

現(xiàn)在開始生成代碼:

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

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

分別生成了java和csharp的應(yīng)用,在gen-java和gen-csharp目錄下。

三、開發(fā)服務(wù)端

把Java下的ThriftTest類拷貝到項(xiàng)目中,注意添加package。定義服務(wù)類ThriftServer,實(shí)現(xiàn)ThriftTest.Iface接口。(項(xiàng)目需要引用thrift\lib\java\src里的項(xiàng)目。同時需要引用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.運(yùn)行,服務(wù)端就OK了。

四、客戶端調(diào)用

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

然后編寫代碼:

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

}

運(yùn)行,出結(jié)果了。

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

分類: .Net language and other

四步完成跨平臺調(diào)用——thrift的開發(fā)應(yīng)用 - Birdshover - 博客園


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

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

【本文對您有幫助就好】

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

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产精品一区二区三区免费 | 九色九色久综色鬼在线 | 另类小说综合 | 欧美精品综合一区二区三区 | 国产小视频福利 | 成人午夜视频一区二区国语 | 特级毛片免费 | 亚洲综合亚洲 | 欧美亚洲在线视频 | 欧美日韩专区 | 久久夜色精品国产亚洲噜噜 | 欧美日韩精品一区二区三区 | 99精品在线观看 | 午夜视频日本 | 国产成人精品高清免费 | 在线成人免费观看视频 | 天天草人人草 | 久在线播放 | 国产日本在线播放 | 嫩草91| 国产真实精品久久二三区 | 久久久久国产精品www | 亚洲一区色 | 91www成人久久| 欧美一区二区三区在线观看免费 | 亚洲国产精品一区二区久久 | 日韩在线视频免费观看 | 国产精品自线在线播放 | 免费视频大片在线观看 | 在线区| 欧美日韩一区二区中文字幕 | 国产精品1区2区3区 亚洲国产aⅴ成人精品无吗 | 特片网久久 | 欧美人两个人激情的免费视频 | 一级视频片| 性夜影院爽黄e爽痛轻点www | 久久一区二区视频 | 亚洲欧美日本人成在线观看 | 亚洲一区在线日韩在线深爱 | 天天干com| 一区二区三区在线免费看 |