`

一个关于ice中间件客户端调用服务器的小例子java语言

阅读更多
  前几天熟悉项目时,看到项目要用到ice因此就写了一个ice版本的helloworld程序看似简单但是还是耗费了不少的经历.
  首先第一点要确认你的机器上面已经安装了ice 我安装的是ice3.4.2 建立一个名为slice的文件夹最好用集成开发环境比如myeclipse
设置好你的环境变量ICE_HOME 设置为你的ice的安装目录比如我的是C:\Program Files (x86)\ZeroC\Ice-3.4.2
刚才说到建立一个slice的文件夹里面建立一个Printer.ice的文件
这个Printer.ice文件里面定义了一个接口里面定义了一个add方法和一个printString的方法
  interface{
      void printString(String s);
      void add(int a ,int b);
}

然后进行对这个ice文件的编译我用的是java ice应用
首先进入你的电脑的slice文件的那个地方比如我的就是D:\Workspaces\hlw\TestIce\slice
然后打开命令行执行mkdir aaa 这句话的意思是建立一个名为aaa的文件夹 然后输入slice2java --output-dir aaa Printer.ice这样就会在aaa文件夹下出现很多java源文件
然后我们就可以正式进行客户端调用服务端的开发了
首先我们把刚刚ice自己生成的java文件用集成开发环境装入一个包中我用的是myeclipse
比如com.sjy
然后建立一个名为PrinterI.java的类当然名字可以随便取
    import Ice.Current;

import com.energyfuture._PrinterDisp;

public class PrinterI extends _PrinterDisp {

	public void add(int a, int b, Current current) {
		System.out.println(a + b);
	}

	public void printString(String s, Current current) {
		System.out.println(s);
	}

}

这里注意_PrinterDisp这个类是ice自己生成的
然后是Server.java
 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 object = new PrinterI();
			adapter.add(object, Ice.Util.stringToIdentity("SimplePrinter"));
			adapter.activate();
			ic.waitForShutdown();
		} catch (Ice.LocalException e) {
			e.printStackTrace();
			status = 1;
		}catch (Exception e){
			System.err.println(e.getMessage());
		}finally{
			if(ic != null){
				ic.destroy();
			}
		}
		System.exit(status);
	}
}


然后是client端
  public class Client {
	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.err.println("Ivalid proxy");
			}
			printer.add(1, 2);
			printer.printString("Hello World");
		} catch (Ice.LocalException e) {
			status = 1;
			e.printStackTrace();
		}catch (Exception e) {
			status = 1;
			System.err.print(e.getMessage());
		}finally{
			if(ic != null){
				ic.destroy();
			}
		}
		System.exit(status);
	}
	
}


运行的时候直接run as java application注意先起server在起client而且一定要等到server端完全起起来再起client端
好了至此一个简单的ice客户端调用服务器端的小例子已经做好了.
再复杂的技术也是要先从helloworld写起嘛
分享到:
评论

相关推荐

    Ice 中间件 java c++

    Ice中间件,java c++ ,开发框架

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

    Ice 是一种针对客户端和服务器进行通信的面向对象的中间件平台。Ice 为构建面向对象的客户-服务器应用提供了工具、API 和库支持。客户和服务器通信双方可以用不同的编程语言编写,目前最新的版本支持的语言包括C++...

    ICE中间件技术详细教程_ICE_中间件_

    ICE中间件技术的详细教程,包含ice的开发基础,服务协议等,是初学ICE常用的工具书

    java实现ice例子

    Ice 是一种面向对象的中间件平台。从根本上说,这意味着Ice 为构建面 向对象的客户-服务器应用提供了工具、API 和库支持。Ice 应用适合在异 种环境中使用:客户和服务器可以用不同的编程语言编写,可以运行在不 同...

    ICE中间件技术详细教程

    高效并可扩展的协议,丰富的客户端调用和服务器端分派方式,完善的安全解决方案,大量高 效而实用的服务和工具。基于这些,Ice特别适合对技术和性能要求都很高的分布式系统开发。 由于这些原因,现在 Ice已经被很多...

    ICE客户端实现代码

    ICE中间件开发,客户端实现与服务端通讯源代码。

    ICE客户端与服务端通信Demo

    平台编译环境:VS2017 ICE版本:3.7.7 ICEbuilder:5.0.9 源码中有两套程序: Server:启动服务器,等待连接 。连接后可双方通信 Client:连接服务器,与服务器通讯。...Slice: 手写几个接口即可。

    ICE中间件中文手册

    ICE中间件中文编程手册 好不容易下到ICE中文手册,希望对大家有点帮助

    用JAVA写的ICE小例子(类似聊天室)

    使用java编写的ICE小例子,可以实现客户端发送文本给服务器端,然后服务器端控制台打印文本。客户端可以接收控制台输入。请自己导入Ice.jar包

    ZeroC提 供的一款高性能的中间件 ICE

    ICE(Internet Communications Engine)是ZeroC提 供的一款高性能的中间件,基于ICE可以实现电信级的解决方案。前面我们提到过在设计网站架构的时候可以使用ICE实现对网站应用的基础对象操作,将基础 对象操作和数据库...

    ICE中间件介绍

    ZeroC公司的ICE中间件的简单介绍。很好的网络通信中间件。

    ICE中间件使用说明加教程

    时下比较流行的强大中间件ICE 当中包括ICE3.2和3.3两个版本,要按照不同的VS版本来安装。 压缩包中已经有详细的教程和使用说明! 遗憾的是要分两个分卷来上传!不好意思。

    ICE通讯服务器客户端模式

    该程序主要实现的是ICE通讯中简单的也是最基本的服务器客户端通讯模式。

    ICE 3.6.1 异步调用 VS2013 Demo

    ICE 异步调用 按照网上已有的例子,客户端调用需要加入["ami"]元数据指定,但ICE 3.4以后的版本不支持,所以对于ICE3.4以后的版本可以用begin_API进行异步调用。本资源的ICE的版本为3.6.1,所以需要提前下载好ICE...

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

    vs2005 ice3.3.1 简单客户端 服务端例子。

    ICE异步调用Demo源码

    ICE异步调用Demo(slice源码和C++源码) 服务器和客户端adm ami函数调用与异步分发 vs2008+ice3.4.1

    ICE中间件资料大全

    ICE分布式程序设计,开发人员必备,还有一些好的技术积累

    ICE中间件简介PDF

    一个网络 往往由若干个大大小小的子网组成,它们分别运用不同的网络技术,涵盖了不同厂家、公司 的网络设备和通信设备,另外,机器的操作系统和编程语言也各不相同,这些都给网络节点 之间的资源共享和相互之间的...

    Ice-3.7.1.rar

    Ice是RPC通讯领域里最稳定、强大、高性能、跨平台、多语言支持的老牌开源中间件,特别适合于当前互联网领域中一个平台存在多种开发语言编程,以及网站和app应用并存的复杂大型项目。  RPC(Remote Procedure Call ...

Global site tag (gtag.js) - Google Analytics