我正在尝试连接到服务器但无法这样做。 下面是代码片段,服务器运行在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));
我在这里缺少什么额外的东西。 任何建议都会有很大的帮助。
由于
答案 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);