corba - 如何在 NAT 后面实现 CORBA 客户端

标签 corba nat

我有以下接口(interface)。

interface Server {
   void subscribe(in Client client);
};

interface Client {
   void ping();
   void pong();
};

初始化时,客户端将连接到服务器并调用 subscribe(this)。 然后服务器会不时地调用客户端上的 ping() 或 pong() 方法。但是,如果客户端位于 NAT 后面,则此方法将不起作用。此问题有哪些可能的解决方法?

是否可以利用客户端创建的 TCP 连接来调用服务器 -> 客户端? 请指教。

最佳答案

了解您的 ORB 是否支持双向 IIOP,这可以解决服务器->客户端回调的 NAT/防火墙问题。

以下是一些支持它的 ORB:

OmniORB - http://omniorb.sourceforge.net/omni40/omniORB/omniORB008.html#sec:bidir

Orbix - http://documentation.progress.com/output/Iona/orbix/migration/html/InteropCx3.html

Visibroker - http://www.albany.edu/dept/csi/csi518/fall03/inprise/vbroker/doc/books/vbj/vbj45/programmers-guide/bidir.html

关于corba - 如何在 NAT 后面实现 CORBA 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14980848/

相关文章:

.net - 寻找 .NET CORBA 库的建议

EJB 查找抛出错误 : org. omg.CORBA.MARSHAL: vmcid: SUN 次要代码: 257 已完成: 也许

corba - 仆人和对象 - 关系

java - NAT背后的UDP打洞

c++ - CORBA omniorb C++ 多仆人

java - 运行时获取服务器上的 Corba 客户端 Activity

c# - 尝试在 C# 中使用 INATExternalIPAddressCallback 获取 NAT 的外部 IP 地址

javascript - 网页无法到达反向代理服务器

networking - VirtualBox端口转发不适用于NAT适配器

Azure 应用服务出站请求不通过 Vnet 集成 NAT 网关路由