首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 互联网 >

ICE—互联网络通信引擎的学习笔记

2012-09-28 
ICE—互联网通信引擎的学习笔记在开发企业应用的时候,网络通信引擎的选取是至关重要的,有些大公司往往自己

ICE—互联网通信引擎的学习笔记

在开发企业应用的时候,网络通信引擎的选取是至关重要的,有些大公司往往自己独立开发网络协议以及处理socket通信,但对于中小企业来说,利用开源的网络引擎无疑会给你带来很多好处,你无须再关心繁琐的编解码以及一系列协议,也无须关心底层网络通信,你只需要关心你的业务就可以了,本文介绍的是ice网络通信引擎,其中大名鼎鼎的skype的通信协议的一部分就是采用的是它!

?

互联网通信引擎的选型我觉得有几点很重要:

?

    客户端语言无关性:目前客户端采用一种语言,服务器端采用另一种高效的语言已经比较普遍,这就需要网络通信引擎具有无言无关性,ice的客户端语言可以是java,c++,.net,PHP,Python,Pascal等性能:ICE的性能可能比不上ACE,但总体来说,尚算不错伸缩性和扩展能力:ice支持均衡
下面偶举一个很简单的例子,利用C#在客户端向服务器发送请求,要求服务器端打印出“Hellow world”,服务器端语言采用Java,开发步骤日下:
    利用slice2cs生成C#客户端接口代码,其中ice文件内容如下:
public static void main(String[] args) {int status = 0;Ice.Communicator ic = null;try {ic = Ice.Util.initialize(args);Ice.ObjectAdapter adapter = ic.createObjectAdapterWithEndpoints("SimplePrinterAdapter", "default -p 10000");Ice.Object object = new PrinterI();adapter.add(object, Ice.Util.stringToIdentity("SimplePrinter"));adapter.activate();ic.waitForShutdown();} catch (Ice.LocalException e) {e.printStackTrace();status = 1;} catch (Exception e) {System.err.println(e.getMessage());status = 1;} finally {if (ic != null)ic.destroy();}System.exit(status);}
?

测试一下吧:)

热点排行