千家信息网

linux下ice指的是什么

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要为大家展示了"linux下ice指的是什么",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"linux下ice指的是什么"这篇文章吧。linux下
千家信息网最后更新 2026年10月31日linux下ice指的是什么

这篇文章主要为大家展示了"linux下ice指的是什么",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"linux下ice指的是什么"这篇文章吧。

linux下的ice是"The Internet Communications Engine"的简称,是互联网通信引擎的意思,是一个面向对象的中间件,可以用最小的代价构建分布式应用程序。

本教程操作环境:linux7.3系统、Dell G3电脑。

linux下ice是什么

ICE是ZEROC的开源通信协议产品,它的全称是:The Internet Communications Engine,翻译为中文是互联网通信引擎,是一个面向对象的中间件,使我们能够以最小的代价构建分布式应用程序。

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

示例在linux下安装ice过程:

下载安装源

cd /etc/yum.repos.dsudo wget https://zeroc.com/download/Ice/3.7/el7/zeroc-ice3.7.repo

Ice所需库

  • bzip2 1.0

  • expat 2.1 or later

  • LMDB 0.9 (LMDB is not required with the C++11 mapping)

  • mcpp 2.7.2 with patches

  • OpenSSL 1.0.0 or later (on AIX and Linux)

安装lmdb-devel mcpp-devel(其他库系统可能自带有,可先不安装,等make报错再安装)

sudo yum install lmdb-devel mcpp-devel

下载Ice源码ice-3.7.3.tar.gz,解压

cd /home/user/tar -zxf ice-3.7.3.tar.gzcd ice-3.7.3/cpp

编译(默认C++98,可设置CXXFLAGS修改为c++11)

sudo make -j4sudo make CXXFLAGS=-std=c++11 -j4

src/Ice/SHA1.cpp:14:31: 致命错误:openssl/sha.h:没有那个文件或目录

sudo yum install openssl-devel

src/Ice/ConnectionI.cpp:27:21: 致命错误:bzlib.h:没有那个文件或目录

sudo yum install bzip2-devel

src/IceXML/Parser.cpp:7:19: 致命错误:expat.h:没有那个文件或目录

sudo yum install expat-devel

安装(默认安装在/opt/Ice-3.7.3)

sudo make install

测试

1)编写ice的slice配置文件

module Demo {    interface Printer {        void printString(string s);    };};

2)编译Slice定义文件(生成Printer.h 和Printer.cpp)找不到slice2cpp,自己配置运行环境在/opt/Ice-3.7.3/bin中

slice2cpp Printer.ice

3)编写服务端,命名为Server.cpp

#include #include  using namespace std;using namespace Demo; class PrinterI : public Printer {    public:        virtual void printString(const string& s, const Ice::Current&);}; void PrinterI::printString(const string& s, const Ice::Current&){    cout << s << endl;} int main(int argc, char* argv[]){    int status = 0;    Ice::CommunicatorPtr ic;    try {        ic = Ice::initialize(argc, argv);        Ice::ObjectAdapterPtr adapter =            ic->createObjectAdapterWithEndpoints("SimplePrinterAdapter", "default -p 10000");        Ice::ObjectPtr object = new PrinterI;        adapter->add(object, ic->stringToIdentity("SimplePrinter"));        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;}

4)编译服务端

c++ -I. -I/opt/Ice-3.7.3/include -c Printer.cpp Server.cppc++ -o server Printer.o Server.o -L/opt/Ice-3.7.3/lib64 -lIce -lpthread

5)编写客户端,命名为Client.cpp

#include #include  using namespace std;using namespace Demo; int main(int argc, char* argv[]){    int status = 0;    Ice::CommunicatorPtr ic;    try {        ic = Ice::initialize(argc, argv);        Ice::ObjectPrx base = ic->stringToProxy("SimplePrinter:default -p 10000");        PrinterPrx printer = PrinterPrx::checkedCast(base);        if (!printer)            throw "Invalid proxy";         printer->printString("Hello World!");    } catch (const Ice::Exception& ex) {        cerr << ex << endl;        status = 1;    } catch (const char* msg) {        cerr << msg << endl;        status = 1;    }    if (ic)        ic->destroy();    return status;}

6)编译客户端

c++ -I. -I/opt/Ice-3.7.3/include -c Printer.cpp Client.cppc++ -o client Printer.o Client.o -L/opt/Ice-3.7.3/lib64 -lIce -lpthread

7)运行Server,然后运行Client,如果看到输出Hello World!则成功。

以上是"linux下ice指的是什么"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

文件 编译 内容 目录 篇文章 网络 错误 应用 运行 通信 最小 中间件 互联网 代价 分布式 客户 客户端 对象 序列 应用程序 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州万易互联网科技有限公司 深圳九邦互联网科技有限公司 湖南永感互联网科技有限公司 北京路客互联网科技有限公司 互联网科技公司税收优惠 工业互联网科技新基建 朗新科技与工业互联网 北京互联网科技有限公司 金融科技与互联网金融 猪兼强互联网科技 丰台科技园 互联网 互联网科技美容 互联网金融科技公司干啥的 中化能源互联网科技招聘 河南猎农互联网科技有限公司 济南有互联网科技公司吗 伍佰万互联网科技怎么赚钱 上海互联网科技园景观 东风日产互联网科技公司叫什么 现代科技的标志之一的互联网 手冲咖啡和咖啡机区别 湖南永感互联网科技有限公司 互联网科技媒体 卓越科技(互联网 ) 互联网科技logo设计 深圳前海聚择互联网科技有限公司 贵州叶脉互联网科技有限公司所属行业 成都互联网科技公司工作好不好 互联网科技手抄报图片 科技信息时代互联网发展
0