Ice框架的简介:
ICE出自ZeroC之下,是一种面向对象的中间件平台。
适合于易购平台环境中使用,支持多语言编程。
可以运行在不同的操作系统和机器架构之上,并且可以使用多种网络进行通信。
支持的语言:
C++
.NET
.NET Compact Framework
Java
Android
Python
Ruby
PHP
官网地址:
http://www.zeroc.com

哪些大公司在使用Ice通信框架:
开心网 好像他们在它基础上做了一些改动开发了一种新的通信框架好像叫KXI。
人人网 人人网的RPC服务在使用

使用方式:
首先需要去官网下载它的安装包,下载地址如下:
http://www.zeroc.com/download.html
最新版本:3.5.1
选择安装目录
因为我是在windows下进行安装的,直接下一步就可以了。
新建一个简单的hello.ice文件

module Demo
{

interface Hello
{
idempotent void sayHello(int delay);
void shutdown();
};

};
module是相应的模块,针对java语言是其相关的类。
sayHello和shutdown是其相关的接口。
进入目录
C:\Program Files\ZeroC\Ice-3.5.0\bin
或者将其加入到环境变量中。
执行命令:
slice2java hello.ice
则在相应的目录生成相关的代码
将代码拷贝到相应的工程项目中,同时引入相应的ice.jar
建立Server与Client相应的服务
代码示例如:
Server.Class:
public static void start() {
int status = 0;
String[] args = new String[] {};
Communicator ic = null;
try {
ic = Util.initialize(args);
ObjectAdapter adapter = ic.createObjectAdapterWithEndpoints(
“testAdapter”,AuthrityPropertyUtil.getAddress());
ObjectImpl object = new HelloService();
adapter.add(object, ic.stringToIdentity(“testAdapter”));
adapter.activate();
ic.waitForShutdown();
} catch (Ice.LocalException e) {
e.printStackTrace();
status = 1;
} catch (Exception e) {
System.err.println(e.getMessage());
status = 1;
}
if (ic != null) {
try {
ic.destroy();
} catch (Exception e) {
System.err.println(e.getMessage());
status = 1;
}
}
System.exit(status);
}
建立HelloService服务:
HelloService 继承自生成的相应的接口服务
在里面编写自己相应的逻辑。
客户端Client.Class主要代码:
Communicator ic = null;
String args[]=new String[]{};
try {
ic = Ice.Util.initialize(args);
Ice.ObjectPrx base = ic
.stringToProxy(“testAdapter:”+AuthrityPropertyUtil.getAddress());
AuthrityServicePrx client = AuthrityServicePrxHelper
.checkedCast(base);

if (client == null)
throw new Error(“Invalid proxy”);

} catch (Ice.LocalException e) {
e.printStackTrace();
status = 1;
} catch (Exception e) {
System.err.println(e.getMessage());
status = 1;
}
if (ic != null) {
try {
ic.destroy();
} catch (Exception e) {
System.err.println(e.getMessage());
status = 1;
}
在客户端根据不同场景调用不同的方法。

启动方式:
首先启动服务端的服务。
客户端根据相应的ip与适配器就可以找到相应的服务端的服务,进行通信了。

版权声明:本文为saxiuliu原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/saxiuliu/p/3378725.html