我有一个客户机需要向服务器发送一个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/端口,这样我就可以向它发送一个udp数据包?
我知道这听起来很奇怪-为什么不直接调用远程方法呢,这是一个学校的项目,教授建议只需存储另一个包含所有服务器信息的表-但我正在努力发挥创造力,因为我在阅读ior的相关信息,我想也许我可以用它做些什么。。。
任何帮助都将不胜感激。谢谢,
1条答案
按热度按时间bq9c1y661#
不确定它是否有用,但下面是我用来访问ibmcorba命名服务的属性,也许您可以尝试从对象中获取这些属性。
org.omg.corba.orba初始端口
org.omg.corba.orbinitialhost
export orb\u property=“-dorbnamingprovider=cosnaming-dorg.omg.corba.orbclass=com.ibm.corba.iiop.orb-dorg.omg.corba.orbinitialport=${orb\u port}-dorg.omg.corba.orbinitialhost=${orb\u host}-dcom.ibm.corba.debug.output=/dev/null”