2017-09-23 106 views
0

我有一个用Java编写的CORBA客户端,它从端口11112接收来自服务器A的通知。现在,我的服务器在防火墙后面,而我的IP地址在NAT后面。通知不会再收到。我怀疑服务器A将消息发送到我的未注册的IP,并且它应该指向注释的一个......在Java中,有什么方法可以指定给应该指向注释IP的服务器?NAT后面的CORBA客户端

+0

这听起来像你的客户端也是服务器。 – EJP

+0

@EJP首先,客户端通过IOR文件连接到服务器,端口为32100,然后订阅通知服务以通过端口11112接收消息。 – abaraza

+0

首先,检查服务器是否可从客户端访问。如果是这样,请检查客户端是否可以从服务器端访问。如果您在写NAT时隐藏NAT,请确保已启用端口转发或重新使用来自客户端的连接。这就是所谓的双向IIOP。但我不知道你在使用哪种ORB。 – tuergeist

回答

0

我找到了解决方案。你需要在客户端设置一些属性,告诉ORB有效的监听地址是什么。

Properties props = new Properties(); 
props.put("org.omg.CORBA.ORBInitialPort", "11112"); 
props.put("org.omg.CORBA.ORBInitialHost", "MyNatedHost"); 
ORB orb = ORB.init(args, props);