|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
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); }} 返回类别: 教程 上一教程: 给jikes指定encoding属性的编译过程 下一教程: java访问com组件_jacob使用指南 您可以阅读与"ICE 2.0学习笔记1(HelloWorld)"相关的教程: · 扬扬的J2EE学习笔记(四)Platform Services平台服务 · 《Effective Java》学习笔记(1) · Java软件开发学习笔记(三) · 《Effective Java》学习笔记(4) · Java的“对象思想”学习笔记[二] |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |