corba:无法连接到服务器

时间:2015-06-19 05:24:57

标签: corba

我正在尝试连接到服务器但无法这样做。 下面是代码片段,服务器运行在3.204.24.98:6090。

char* ior = "corbaloc:iiop:3.204.24.98:6090";

cout<<"controllers ior : "<<ior;

//CORBA::Object_var obj = orb -> string_to_object(ior);
Hello_var hello = Hello::_narrow(orb->string_to_object(ior));

我在这里缺少什么额外的东西。 任何建议都会有很大的帮助。

由于

1 个答案:

答案 0 :(得分:1)

您错过了对象键,它告诉ORB您要访问的服务器中的哪个对象。检查IORTable支持,您的服务器可以使用客户端可以使用的简单名称使对象可用。使用C ++ 11,这将在服务器代码中

  std::string ior = orb->object_to_string (server_reference);
  auto ior_table_obj = orb->resolve_initial_references("IORTable");
  auto tmp = IDL::traits<IORTable::Table>::narrow (ior_table_obj);
  ior_table->bind("Hello", ior);

然后客户端可以使用

  auto tmp = orb->string_to_object("corbaloc:iiop:3.204.24.98:6090/Hello");
  auto hello = IDL::traits<Test::Hello>::narrow (tmp);