• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: 小 中 大 | 推荐给好友 上一篇 | 下一篇

ICE 2.0学习笔记1(HelloWorld)

发布: 2007-7-01 18:47 | 作者: admin | 来源: | 查看: 11次 | 进入软件测试论坛讨论

领测软件测试网
Hello.ice #ifndef SIMPLE_ICE#define SIMPLE_ICE//名字空间 or 包名module demo.slice.Hello{ interface Hello{  void printString(string s); };};
#endif

服务器: HelloI.java
package demo.ice.Hello.server;

import demo.slice.Hello._HelloDisp;import Ice.Current;

/** * @author MudfishCN * * servant class: HelloI * _HelloDisp 基类由slice2java编译器生成,它是一个抽象类。 * _HelloDisp 抽象类包含一个printString()方法。 */public class HelloI extends _HelloDisp {

    /* (non-Javadoc)     * @see demo._HelloOperations#printString(java.lang.String, Ice.Current)     */    public void printString(String s, Current __current) {        // TODO Auto-generated method stub        System.out.println(s);    }

}

HelloServer.java
 package demo.ice.Hello.server;

import Ice.LocalException;

/** * @author  MudfishCN * version: 1.0.1  */public class HelloServer {    public static void main(String[] args) {        // 定义status变量,用来控制服务器.        int status = 0;        Ice.Communicator ic = null; //声明一个Communicator 对象ic        try {            // 初始化Ice运行时            ic = Ice.Util.initialize(args);            /*             * 创建一个对象适配器(ObjectAdapter)对象IOAdapter,并初始化之。             * 参数"HelloWorldAdapter":表示适配器的名字。             * 参数"default -p 10000":表示适配器使用缺省协议(TCP/IP)在端口10000处监听到来的请求。             * 服务器配置完成.             */            Ice.ObjectAdapter IOAdapter = ic.createObjectAdapterWithEndpoints(                    "HelloWorldAdapter", "default -p 10000");

            /*             * 为Hello接口创建一个servant.             */            Ice.Object IObject = (Ice.Object) new HelloI();                        /*             * 将新的servant添加到适配器,             * 并将这个新的servant命名为"HelloWorld"             */            IOAdapter.add(IObject, Ice.Util.stringToIdentity("HelloWorld"));                        /*             * 激活适配器,以使服务器开始处理来自客户的请求             */             IOAdapter.activate();

            /*             * 挂起发出调用的线程,直到服务器实现终止为止.             * 或者是通过发出一个调用关闭运行时(run time)的指令来使服务器终止.             */            ic.waitForShutdown();        } catch (LocalException e) {            // 捕捉ICE运行时可能抛出的所有异常            e.printStackTrace();            status = 1;        } catch (Exception e) {            // 捕捉串常量            e.printStackTrace();            status = 1;        } finally {            if (ic != null) {                ic.destroy();            }        }        System.exit(status);    }}
HelloClient.java
package demo.ice.Hello.client;

import Ice.ObjectPrx;import Ice.Util;import demo.slice.Hello.HelloPrx;import demo.slice.Hello.HelloPrxHelper;

/** * @author MudfishCN  */public class HelloClient {    public static void main(String[] args) {        int status = 0;        String s;        //创建一个通信器的对象ic        Ice.Communicator ic = null;        try {            // 初始化ICE运行时            ic = Util.initialize(args);                        /*             * 获取远程对象的代理             * 创建一个代理对象,并用通信器的stringToProxy()方法初始化之。             * 参数:"HelloWorld:default -p 10000"             * 表示:             */            ObjectPrx base = ic.stringToProxy("HelloWorld:default -p 10000");            /*             * 关键点             */            HelloPrx hello = HelloPrxHelper.checkedCast(base);            //测试向下转换是否成功。如果不成功抛出异常信息"Invalid proxy".            if (hello == null) {                throw new Error("Invalid proxy");            }            //向服务器发送十条消息            for(int i=1;i<=10;i++){                s = "Hello,world!"+Integer.toString(i);                hello.printString(s);            }                   } catch (Ice.LocalException e) {            e.printStackTrace();            status = 1;        } catch (Exception e) {            e.printStackTrace();            status = 1;        } finally {            if (ic != null) {                //销毁通信连接                ic.destroy();            }        }        System.exit(status);    }}

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:[email protected] 电话:010-51297073

软件测试 | 领测国际 | ISTQB | ISTQB官网 | TMMi | TMMi认证 | 国际软件测试工程师认证 | 领测软件测试网