首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CORBA ::使用IIOP获取客户端ORB地址和端口

CORBA ::使用IIOP获取客户端ORB地址和端口
EN

Stack Overflow用户
提问于 2013-01-23 20:30:59
回答 3查看 4.7K关注 0票数 3

我有一个使用IIOP协议的CORBA应用程序,我正在使用JDK 6的Java IDL组件,这是另一个ORB实现。

用Java语言实现客户端和服务器端。

在JDK ORB实现中,有没有办法从服务器(ORB)代码中获取客户机ORB的主机和端口?

有没有办法使用IIOP协议,获取客户端的主机和端口?

这是我们正在做的识别客户端,以跟踪谁是被请求的

EN

回答 3

Stack Overflow用户

发布于 2013-01-24 04:58:48

我不认为有任何可移植的方法可以做到这一点。也许有适合你的特定的球体,我不知道。回想一下,CORBA非常努力地对应用程序隐藏传输细节。应用程序甚至可能没有使用IIOP,因此在任何情况下都无法获得TCP主机和端口信息。

您可能需要考虑向IDL添加额外的标识符参数,以便服务器可以识别客户端。您还可以考虑让客户端调用服务器上的"register“函数,然后服务器分发一个标识符,所有客户端在随后的调用中都必须将该标识符传递回服务器。

该标识符可以像字符串或整数一样简单,也可以像服务器必须用公钥验证的某种安全令牌一样复杂。这完全取决于您的应用程序的需求。

票数 2
EN

Stack Overflow用户

发布于 2014-04-25 23:37:31

这取决于具体情况,但有时您需要从IOR中提取主机/端口,以便进行测试、日志记录和调试。IOR包含主机和端口,只需从IOR所代表的字节数组中解码即可。因此,只要以CORBA规范和GNU Classpath中的IorParser.java(大规模依赖项)为例,如果周末有时间,可以自己解码:)

如果你像我一样没有时间,你可以使用ORB附带的命令行工具:

  1. tao_catior in TAO/ACE
  2. iordump in Orbix/Orbacus ORB's
  3. Parse IOR with web online tool未发现使用JDK CORBA进行解析的可能性。尽管代码肯定在内部sun包中的某处。
  4. 迪奥在雅各布球体。或java jacorb.Orb.util.PrintIOR -i IOR-string

对我来说,答案#5已经足够好了。我在基于java的测试工具中使用了Jacorb。但话又说回来,PrintIOR要求org.jacorb.orb.ORB由org.omg.CORBA.ORB.init()实例化。因此,如果您被迫在同一个JVM中使用JDK ORB,这可能会很棘手。

票数 1
EN

Stack Overflow用户

发布于 2019-11-25 22:52:03

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14479816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档