ICE安装及使用示例

标签: ice | 发表时间:2014-11-26 18:17 | 作者:skycrazyer
出处:http://blog.csdn.net

ICE是什么


ZeroC ICE 是指ZeroC公司的ICE(Internet Communications Engine)中间件平台。

Ice 应用适合于异构平台环境中使用:客户和服务器可以采用不同的编程语言,可以运行在不同的操作系统和机器架构上,并且可以使用多种网络技术进行通信。无论部署环境如何,这些应用的源码都是可移植的。 
其采用C/S 模式结构,支持同步调用方式和异步调用方式,异步派发调用方式。支持跨语言的对象调用。多种语言之间采用共同的Slice(Specification Language for Ice)进行沟通。支持ice到C,JAVA,C#,VB,Python,Ruby,PHP等多种语言的映射。

ICE使我们专注于应用逻辑的开发,它来处理所有底层的网络接口编程,这样我们就不用去考虑这样的细节:打开网络连接、网络数据传输的序列化与反序列化、连接失败的尝试次数等。


--------------------------------------------------------------------------------------------------------------------------------------------------------

ICE怎么安装

在编译ice时,会提示缺少哪些必要工具,根据提示依次安装即可。


1.安装gcc,g++
yum install gcc
yum install gcc-c++


2.安装设置mcpp
yum install mcpp.x86_64
ln -s  /usr/lib64/libmcpp.so.0.3.0 /usr/lib/libmcpp.so


3.安装bzip
yum install bzip2-devel.x86_64


4.安装openssh
yum install openssl-devel.x86_64


5.安装expat
yum install  expat-devel.x86_64


6.安装Berkeley DB
yum install db4-devel.x86_64


7.安装ice
源码下载:http://download.zeroc.com/Ice/3.5/Ice-3.5.1.tar.gz
主目录:make
进入cpp:make install


--------------------------------------------------------------------------------------------------------------------------------------------------------

ICE 测试demo


demo.ice:定义服务器和客户端的公共接口

module Demo{  
	interface test{  
 		string   execute(string mth,string cmd);  
	};  
};


client.cpp:客户端程序

#include <string>  
#include <Ice/Ice.h>  
#include <demo.h>  
using namespace std;  
using namespace Demo;  
int main(void)
{  
    try 
    {
        Ice::CommunicatorPtr ic; 
        testPrx testServer;
        Ice::ObjectPrx base;
        ic = Ice::initialize();  
        base = ic->stringToProxy("TestAdapter:default -p 10000");  
        testServer = testPrx::checkedCast(base);  
        string mystr = testServer->execute("My first cpp "," ice demo");  
        printf("result:%s\n",mystr.c_str());
    }
    catch (const Ice::Exception& ex) {  
        cerr << ex << endl;  
    }
} 

server.cpp:服务端程序

#include <Ice/Ice.h>  
#include <demo.h>  
using namespace std;  
using namespace Demo;  
class Server:public test  
{  
public:  
  ::std::string execute (const string & mth, const string & str,const Ice::Current &);  
public:
    Server ();  
};  
Server::Server ()  
{  
   
};  
std::string Server::execute (const string & mth, const string & str,const Ice::Current &)  
{  
  cout << mth + str << endl;  
  return mth + str;  
}  
   
int main ()  
{   
    int status=0;
    Ice::CommunicatorPtr ic;  
    try  
    {  
        ic = Ice::initialize();  
        Ice::ObjectAdapterPtr adapter = ic->createObjectAdapterWithEndpoints ("TestAdapter","default -p 10000");  
        Ice::ObjectPtr object = new Server;  
        adapter->add (object, ic->stringToIdentity ("TestAdapter"));  
        adapter->activate ();  
        ic->waitForShutdown ();
    } 
    catch (const Ice::Exception & e)
    {  
        cerr << e << endl;
        status = 1;  
    } 
    catch (const char *msg)
    {  
        cerr << msg << endl;
        status = 1;
    }  
    if(ic)
    {  
        try
        {
            ic->destroy();  
        }  
        catch (const Ice::Exception & e)  
        {  
            cerr<< e <<endl;  
            status = 1;  
        }  
    }  
    return status;  
}  


参考
http://blog.csdn.net/fenglibing/article/details/6372444
http://masterkey.iteye.com/blog/183307

作者:skycrazyer 发表于2014-11-26 10:17:31 原文链接
阅读:121 评论:0 查看评论

相关 [ice] 推荐:

北极熊冰格:Polar Ice

- Zhen - 爱…稀奇~{新鲜:科技:创意:有趣}
爱稀奇引进过泰国Qualy的北极熊冰桶(Polar Ice Bucket),现在,我们来看看日本设计师Atsuhiro Hayashi的类似创意,北极熊冰格(Polar Ice):. 简单地说,这冰格像个圆筒,能制作出一只孤独的北极熊站在一大块浮冰上这种造型的冰块,将之加到饮料中,熊熊在浮力的作用下会高出水面,但是终究会因为冰块的融化而沉没…….

视频:Nexus Prime + Ice Cream Sandwich

- 骏骏 - 36氪
今天韩国网站Gadget.io拿到了一份泄露版的运行最新版的Ice Cream Sandwich系统的三星Nexus Prime手机视频. Nexus Prime是三星在10月11号即将发布的新手机,Ice Cream Sandwich是Google的下一代Android操作系统代号,这二个产品有望在11号那天一起发布.

ICE应用实例(01):

- - 企业架构 - ITeye博客
本文接上篇博文《ICE通信框架》如果你还没有接触过ice请先阅读我的上篇博文 http://blog.csdn.net/liuzhoulong/archive/2011/03/04/6223450.aspx. 本文将结合实际项目,做一个基于 ice的实际项目实例应用,该实例完成客户端调用服务端接口完成消息发送,计算的功能.

ZEROC Ice 初步认识

- - 企业架构 - ITeye博客
ICE是ZEROC的开源通信协议产品,它的全称是:The Internet Communications Engine,翻译为中文是互联网通信引擎,是一个面向对象的中间件,使我们能够以最小的代价构建分布式应用程序. ICE使我们专注于应用逻辑的开发,它来处理所有底层的网络接口编程,这样我们就不用去考虑这样的细节:打开网络连接、网络数据传输的序列化与反序列化、连接失败的尝试次数等.

Android 4.0 Ice Cream Sandwich 截图曝出

- Vendetta - 爱范儿 · Beats of Bits
Ice Cream Sandwich 将是 Android 系统的一次重大升级,对此我们也非常期待,但是对于 ICS 的情况,Google 很少透露. RootzWiki 网站宣布从一个可靠的信息源得到 Android 4.0 的图片和信息. 根据该网站的说法,Ice Cream Sandwich 的开发仍处于“非常早期的阶段,功能并非 100% 可用.

Android Ice Cream Sandwich 截图首次泄露

- 请叫我火矞弟 - Engadget 中国版
继续阅读全文 Android Ice Cream Sandwich 截图首次泄露. 引用来源 | 引用来源 | 引用来源 | 此文章网址 | 转寄此文章 | 回应.

Android Ice Cream Sandwich 首张截图泄露

- Raining - cnBeta.COM
Android Ice Cream Sandwich 首张截图已经华丽地泄露出来,内部版本号是IRK36B,该版本运行在一台Nexus S上,用户界面出现了非常大的变化,图表配色转向蓝色,全新的launcher和应用程序抽屉,带来了新的GMail程序和相机的全景模式.

谷歌Android Ice Cream Sandwich发布在即

- Adam - cnBeta.COM
据国外媒体报道,谷歌目前正积极协助开发者为即将发布的Android 冰淇淋三明治(ICS)做准备,该款系统可谓一款标准手机操作系统,可用于智能手机和平板电脑. 公司已经明确表示,将发布一款能方便开发者将现有蜂窝(Honeycomb)系统下的应用程序用于智能手机的SDK,并不会做太多改动. 同时开发者还可以在使用蜂窝系统的平板电脑的动作条上构建该款SDK.

Android 4.0 Ice Cream Sandwich 五大特色

- daviddu - Crave 科技瘋
Google日前與Samsung共同發表最新的Android 4.0作業系統,又名Ice Cream Sandwich (ICS). Samsung最近推出的Galaxy Nexus是首部搭載ICS作業系統的手機.

Android 4.0 Ice Cream Sandwich 正式发表!

- Shark - Engadget 中国版
Google 正式发表新一代的 Android 版本 -- Ice Cream Sandwich(4.0). 这代的特点就是界面的大整修,例如将通知例改为半透明、以「Roboto」字型做为核心的手机界面设计「哲学」和改善了的工作管理. 另外 ICS 还加入了数新功能,包括我们稍后会作详细介绍的 Face Unlock.