如何连接客户端(在VirtualBox上)和服务器(在localhost上)?我使用CORBA和C ++ / Java

时间:2012-10-10 14:01:15

标签: java c++ connection virtualbox corba

我有一个简单的'Hello world'C++/Java应用CORBA。服务器写在C++中,Java中的客户端。我使用omniORBs omniNames作为名称服务。

我想在我的omniNames上运行我的localhost和服务器 (Ubuntu)并在我的localhost Ubuntu上安装的VirtualBox中的Windows XP SP3上运行我的客户端。

(我的意思是:在我的本地主机上,我安装了Ubuntu操作系统,在Ubuntu中我安装了VirtuaBox,内置了Windows XP SP3。)

我试过了:

  1. 我在我的Ubuntu localhost上运行了omniNames,omniNames -start
  2. 我在同一台计算机上运行我的服务器,使用Ubuntu OS运行localhost: ./server -ORBInitRef NameService=corbaloc::localhost:2809/NameService
  3. 我在网站上查看了我的localhosts ip地址:http://whatismyipaddress.com/和 把它写下来,例如:x.x.x.x
  4. 在VirtualBox上打开Windows XP,运行客户端:java client -ORBInitRef NameService=corbaloc::x.x.x.x:2809/NameService
  5. 但有错误:

    C:\Temp\java>java client -ORBInitRef NameService=corbaloc:212.106.19.209:2809/Na
    meService
    pač 10, 2012 3:51:17 PM com.sun.corba.se.impl.naming.namingutil.CorbalocURL badA
    ddress
    WARNING: "IOP00110603: (BAD_PARAM) Bad host address in -ORBInitDef"
    org.omg.CORBA.BAD_PARAM:   vmcid: SUN  minor code: 603  completed: No
            at com.sun.corba.se.impl.logging.NamingSystemException.insBadAddress(Unk
    nown Source)
            at com.sun.corba.se.impl.logging.NamingSystemException.insBadAddress(Unk
    nown Source)
            at com.sun.corba.se.impl.naming.namingutil.CorbalocURL.badAddress(Unknow
    n Source)
            at com.sun.corba.se.impl.naming.namingutil.CorbalocURL.<init>(Unknown So
    urce)
            at com.sun.corba.se.impl.naming.namingutil.INSURLHandler.parseURL(Unknow
    n Source)
            at com.sun.corba.se.impl.resolver.INSURLOperationImpl.operate(Unknown So
    urce)
            at com.sun.corba.se.impl.resolver.ORBInitRefResolverImpl.resolve(Unknown
     Source)
            at com.sun.corba.se.impl.resolver.CompositeResolverImpl.resolve(Unknown
    Source)
            at com.sun.corba.se.impl.resolver.CompositeResolverImpl.resolve(Unknown
    Source)
            at com.sun.corba.se.impl.orb.ORBImpl.resolve_initial_references(Unknown
    Source)
            at client.main(client.java:28)
    
    C:\Temp\java>
    

    是否可以通过这种方式连接客户端和服务器?我该怎么做?我在Windows XP上只有客户端文件 - 仅此而已 - 没有名称服务,没有服务器文件,只有客户端程序。

1 个答案:

答案 0 :(得分:7)

  

我在网站上检查了我的localhosts ip地址:http://whatismyipaddress.com/并将其写下来,例如:x.x.x.x

这不太可能是正确的IP地址。您是如何为VirtualBox VM配置网络的?如果您使用的是默认NAT网络,则guest虚拟机无法与主机通信,因此您需要配置“仅主机”网络,然后使用此网络主机端的IP地址(您应该能够在告诉客户端在哪里找到ORB时,在Ubuntu主机上找到ifconfig,找到vboxnet接口。您可能还发现需要在主机上添加防火墙规则以允许虚拟接口上的传入连接。

请注意,您可以为同一个VM配置多个网络接口,因此如果VM需要访问Internet以及ORB,则可以使用两个接口(一个NAT和一个NAT)进行设置。其他主持人。