这两天开发ICE服务端,client是别人写好的,根据接口写了server后,client链接时报异常:nonexxxx,记不清了,搞半天才发现是id字符串不匹配。总结起来是须要IP、Port、名称都一致才能正常通讯。spa
相似下面的代码:server
Ice.Communicator ic = null;
try {
//初始化链接,args能够传一些初使化参数,如链接超时时间,初使化客户链接池的数量等
ic = Ice.Util.initialize(args);
//建立名为SimplePrinterAdapter的适配器,使用缺省的协议(TCP/IP侦听端口为10000的请求)
Ice.ObjectAdapter adapter = ic.createObjectAdapterWithEndpoints("SimplePrinterAdapter", "default -p 10000");
//实例化一个PrinterI对象,为Printer接口建立一个服务对象
Ice.Object object = new PrinterI();
//将服务单元增长到适配器中,并给服务对象指定名称为SimplePrinter,用于惟一肯定一个服务单元
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());
status = 1;
} 接口