`

ICE java 实例

阅读更多

首先介绍: 
ICE是一个面向对象的中间件平台。从根本上讲,这意味着ICE提供了一些工具、API和库用以开发面向对象的客户端-服务器的应用程序。ICE应用程序适合于用在各种异构的环境中:客户端和服务器可以用不同的语言编写,能够运行在不同的操作系统、不同体系结构的机器上,可以用不同的网络技术进行通讯(大概10种以上)。这些程序的源代码可以在不同的开发环境之间移植。 
在我看来其实是dcom和CORBA的封装。他和gearman和thrift类似。 
一: 
首先确保各个编译器安装成功。检测 
Slice2java ,slice2cpp,slice2C#,slice2py,slice2vb,slice2rb等 
开放端口默认开放10000 
二编写Ice脚本: 
module Demo{  
  interface Printer{  
   string printString(string s);  
  };  
};  


运行slice2java Demo.ice; 
三,编写servant类的PrinterI: 
public class PrinterI extends _PrinterDisp{  
  
    public String printString(String s, Current __current) {  
        // TODO Auto-generated method stub  
        StringBuilder sb=new StringBuilder(s);  
        s=sb.reverse().toString();  
        return s;  
    }  
  
}  

编写Server: 
public class Server {  
    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 objcet = new PrinterI();// 创建servant对象  
            adapter.add(objcet, Ice.Util.stringToIdentity("simplePrinter"));// 适配器添加一个新的servant,给servant对象取个名字  
            adapter.activate();  
            System.out.println("connection success");  
            ic.waitForShutdown();  
        } catch (Ice.LocalException e) {  
            e.printStackTrace();  
            status = 1;  
        } catch (Exception e) {  
            System.err.print(e.getMessage());  
            status = 1;  
        } finally {  
            if (ic != null) {  
                ic.destroy();  
            }  
        }  
        System.exit(status);  
    }  
}  


四,运行服务器端:在windows下建立的Java工程 打成ice_1.jar包放到Linux上运行 
命令:java –cp ./Ice.jar:ice_1.jar Demo.Server//注意Ice.jar包放到ice_*.jar的同一个目录,(特别注意不要再按ctr+c在当前窗体运行客户端,按ctr+c它会中断服务器,NND这里把握搞得郁闷) 
五,编写客户端(Java和PHP版) 
Java版: 
public class Client {  
  
    /** 
     * @param args 
     */  
    public static void main(String[] args) {  
        int status = 0;  
        Ice.Communicator ic = null;  
        try {  
            ic = Ice.Util.initialize(args);  
            Ice.ObjectPrx base = ic.stringToProxy("simplePrinter:default -p 10000" +  
                    "");  
            PrinterPrx printer = PrinterPrxHelper.checkedCast(base);  
            if (printer == null) {  
                System.out.println("invalid proxy");  
            }  
            String out = printer.printString("I love you");  
            System.out.println(out);  
        } catch (Ice.LocalException e) {  
            // TODO: handle exception  
            e.printStackTrace();  
            status = 1;  
        } catch (Exception e) {  
            System.err.print(e.getMessage());  
            status = 1;  
        } finally {  
            if (ic != null) {  
                ic.destroy();  
            }  
        }  
        System.exit(status);  
    }  
  
}  

 

6,测试Java先:java –cp ./Ice.jar:ice_2.jar Demo.Client//把客户端打包成ice_2.jar, 

0
0
分享到:
评论
1 楼 bluky999 2012-03-15  
我更喜欢thrift 

相关推荐

    ICE104规约Java解析源码

    同时,这些源码也可以作为学习和理解ICE104规约实现的实例,帮助初学者更好地理解和运用该规约。 在实际应用中,ICE104Java解析源码可能被整合到一个更复杂的系统中,如SCADA(Supervisory Control And Data ...

    Ice 经典入门和实例

    由ZeroC公司开发,Ice支持多种编程语言,包括C++、Java、Python等,使得开发人员可以灵活选择适合项目需求的语言。Ice的核心理念是“简单、快速、可靠”,其设计目标是简化分布式系统开发,提高开发效率,并确保系统...

    ICE  代码实例 VC6

    ICE提供了丰富的编程接口,支持多种语言,包括C++、Java、Python等,并且与VC6(Visual C++ 6.0)兼容,使得在Windows平台上开发ICE应用变得更加便捷。 在“ICE 代码实例 VC6”中,我们可以期待学习到以下关键知识...

    Zeroc ice java eclipse project

    在"Zeroc ice java eclipse project"中,我们看到的是一个使用Zeroc ICE在Java环境下用Eclipse开发的项目实例。这个项目包含了一些关键文件,下面我们将详细解析这些文件及其相关的知识点。 1. `ice_hello`:这可能...

    icedemo实现对象的传输与返回(java)

    在客户端,我们需要创建一个ICE的`Communicator`实例,然后通过它获取服务端的代理,调用`serve`方法,并处理返回的Response对象: ```java public class Client { public static void main(String[] args) { Ice...

    ice——java集群

    【标题】"ice——java集群"涉及的核心技术是ZeroC的Ice(Internet Communications Engine),它是一种高效的、跨语言的中间件框架,专为构建分布式应用程序而设计。在Java环境中,Ice提供了一种强大的方式来实现高...

    ICE编程实例ICE编程实例

    - **多语言支持**:ICE支持C++、C#、Java、Python等,方便在不同技术栈间协作。 2. **C++与ICE** - **C++绑定**:ICE为C++提供了丰富的API,开发者可以用C++编写服务器和客户端程序,利用ICE的特性进行网络通信。...

    Ice入门完整实例

    【Ice入门完整实例】是一个针对初学者的教程,旨在引导用户了解并掌握Ice中间件的基本用法和开发流程。在本实例中,我们将深入探讨Ice,一个强大的分布式对象框架,它提供了一种高效的、跨平台的方式来构建分布式...

    JAVA版的iec61850实例

    **Java版IEC61850实例详解** 在电力自动化领域,IEC61850标准扮演着至关重要的角色。它定义了一套用于变电站自动化系统的通信协议,旨在实现设备间的互操作性和数据共享。这个标准不仅包含了数据模型,还涵盖了服务...

    ice异步模式源码实例

    ICE支持多种编程语言,包括C++、Java和Python等,提供了异步模式(AMD:Asynchronous Method Dispatch)和AMI(Asynchronous Method Invocation)来处理并发和非阻塞的网络通信。 标题"ice异步模式源码实例"指的是...

    ice同步调用和异步调用实例代码

    Ice 是一种针对客户端和服务器进行通信的面向对象的中间件平台。Ice 为构建面向对象的客户-服务器应用提供了工具、API 和库支持。客户和服务器通信双方可以用不同的编程...本代码为ice同步调用和异步调用实例代码。

    ICE 简单客户端和服务端实例

    ICE 提供了多种语言的绑定,包括 C++、Java、Python 等,使得跨平台的开发变得更加简单。在给定的 "ICE 简单客户端和服务端实例" 中,我们有两个关键组件:consoleClient 和 consoleServer,它们是 ICE 框架下的基础...

    zero ICE快速入门java版

    // Communicator实例,是ice run time的主句柄 Ice.Communicator ic = null; try { // 调用Ice.Util.Initialize()初始化Ice run time System.out.println("初始化ice run time..."); ic = Ice.Util.initialize(args)...

    ice入门例子

    Ice是一个全面的解决方案,用于构建分布式系统,它支持多种编程语言,如C++、Java、Python等。Ice的核心是它的接口定义语言(IDL),它允许开发者定义跨语言、跨平台的接口,实现数据类型的自动序列化和反序列化。 ...

    web-rtc可以用的实例,简单方便,基于chrome html5 java

    这个实例表明,WebRTC可以轻松地应用于Chrome浏览器,并且与HTML5和Java技术相结合,提供了简单而高效的方法来进行多媒体通信。 在HTML5的支持下,WebRTC使得网页能够直接访问用户的摄像头和麦克风,进行音视频通话...

    ice的jar包

    《深入理解Ice.jar在Java中的应用》 Ice.jar,作为Java调用ICE(Internet Communication Engine)框架的关键组件,是开发分布式应用程序不可或缺的一部分。ICE是一种高性能、跨语言的中间件,它提供了一种简单而...

    STUN协议的java实现,stun4j

    1. **初始化STUN客户端**:创建STUNClient实例,并设置服务器的公网IP和端口。 2. **创建绑定请求**:调用客户端的相应方法,如`createBindingRequest()`,创建一个STUN绑定请求。 3. **发送请求并监听响应**:使用`...

    ice安装包 for windows.zip

    `icegridadmin`则是用于管理和监控ICE网格服务的工具,可以帮助开发者管理分布式系统的实例和负载均衡。 除了上述核心组件,安装包可能还包含文档、示例代码和其他资源,帮助开发者快速理解和使用ICE。文档通常会...

Global site tag (gtag.js) - Google Analytics