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);
}
}
分享到:
相关推荐
一个简单的ice hello world,对于刚刚入手的ice的人有帮助,运行起来,了解其中的原理
ICE文档作者写的关于实例程序的开发过程。很基础,不是很深,建议刚入门的同志可以看看,学学怎么使用ICE编程。
Ice 是一种面向对象的中间件平台。从根本上说,这意味着Ice 为构建面 向对象的客户-服务器应用提供了工具、API 和库支持。Ice 应用适合在异 种环境中使用:客户和服务器可以... 本例子是用java写的ice实现的HelloWorld
public abstract class _HelloWorldDisp extends Ice.ObjectImpl implements HelloWorld{} servant类是ice所定义的接口,在服务器端的实现类。我们在该类中可以编写服务器端对请求的具体处理。 代码如下: package ...
这是用java开发的ice的helloworld
第 3 章 Hello World 应用 第 4 章 Slice 语言 第 5 章 一个简单文件系统的 Slice 定义 第 6 章 客户端的 Slice-to-C++ 映射 第 7 章开发 C++ 文件系统客户 第 8 章 客户端的 Slice-to-Java 映射 第 9 章开发 Java ...
第 3 章 Hello World 应用 33 3.1 本章综 33 3.2 编写 Slice 定义 33 3.3 编写使用 C++ 的 Ice应用 34 3.4 编写使用 Java的 Ice 应用 41 3.5 总结 48 第 Ice 核心概念 51 第 4 章 Slice 语言 53 4.1 本章综 53 4.2 ...
Hello World—Really! .............................................7 Output to Unix Syslog .........................................8 Sending Email .................................................8...
天线扫描仿真matlab代码图案标签AMS设计模拟和数字电路tanner模拟设计模拟布局角JS角JS框架角天线设计ARM验证ASIC设计器ASIC建模ASIC解决方案架构...Calibration嵌入式系统软件和驱动程序Linux上的Arium和ICE Audio AP
从字面上看 一种将国际化引入JS的简单方法。 安装 $ npm install i18n-literally 用法 ...i18n `Hello ${ 'World' } !` // => Hello World! // 2. Add/update your translations for a language "$
public string HelloWorld() { return “Hello World”; } ok,一切就绪。在某php文件中如下写法: php5本身就支持SOAP调用Web Service: <?php //get localization strings from C# webs
var str ="helloWorld"; // 一个参数,则将字符串长度作为结束位置 alert(str.slice(3)); // "loWorld" // 两个参数,7位置上的字符为"r",但不包括结束位置的字符 alert(str.slice(3,7)); // "loWo...
Hello world ! 使用SwiftCLI,您将自动获得: 命令路由 选项解析 帮助信息 使用说明 错误使用命令时的错误消息 Zsh完成 目录 安装 > ice add jakeheis/SwiftCLI 迅捷软件包管理器 将SwiftCLI添加为项目的依赖项: ...
jsx运行时 ... return < h1> Hello World < / h1 > ; } 示例gulpfile.js 安装gulp 4,browserify,babelify和好友: npm i gulp@4 browserify babelify @babel/core @babel/preset-env @babel/pl
我们可以在我们的主要网站上添加一个页面,人们可以在其中下载该应用程序并扫描唯一的QR码以运行和编辑hello world示例。服务器GitHub存储库中的项目和需要在云端用Alloy编译的源将通过实例下载源。 目前,该应用...
之前调用 WebService 都是直接添加服务引用,然后调用 WebService 方法的,最近发现还可以使用 Http 请求调用 ... public string HelloWorld() { return Hello World; } [WebMethod] public string Sum(str
如今问题被顺利解决,下面是解决过程 首先看客户端使用JQuery调用WebService的代码: 代码如下: getHellobyAjax: function(callabckFun) { $.ajax({ type: “GET”, url: “WebService.asmx/HelloWorld”, //...
以下对应 example/web 例子: main.go 代码如下: package main import ( fmt log net/http github.com/micro/go-micro/web ) func helloWorldHandler... fmt.Fprint(w, ` ... web.Name(helloworld), ) service.Ha