我有一个客户端需要向服务器发送UDP数据包,他对服务器的唯一引用是通过CORBA命名服务(IOR)。我知道IOR嵌入了服务器信息,但是我有一个简单的方法来提取它吗?
这是我到目前为止的代码:
Object objRef = orb.resolve_initial_references("NameService");
NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);
Object o = ncRef.resolve_str(Name);
在此对象o包含IOR之后(如果我执行o.toString()它确实看起来像一个有效的IOR),所以从这里我可以做什么来获得相应的服务器IP / PORT所以我可以发送一个UDP包?
我知道这听起来很奇怪 - 为什么不只是调用远程方法,这对于一个学校项目而且教授建议只是存储另一个包含所有服务器信息的表 - 但我正在尝试创造性,因为我正在阅读关于IOR我想也许我可以用它做点什么......
非常感谢任何帮助。 谢谢,
答案 0 :(得分:0)
不确定它是否有用,但这是我用来访问IBM CORBA命名服务的属性,也许您可以尝试从对象中获取这些属性。
org.omg.CORBA.ORBInitialHost
export ORB_PROPERTY =“ - DORBNamingProvider = CosNaming -Dorg.omg.CORBA.ORBClass = com.ibm.CORBA.iiop.ORB -Dorg.omg.CORBA.ORBInitialPort = $ {ORB_PORT} -Dorg.omg.CORBA.ORBInitialHost = $ {ORB_HOST} -Dcom.ibm.CORBA.Debug.Output = / dev / null“