⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 client.cc

📁 MICO2.3.13 corba 环境平台
💻 CC
字号:
#include "callback.h"#include <CORBA.h>#include <iostream>#include <fstream>#include <unistd.h>using namespace std;CORBA::ORB_ptr orb = CORBA::ORB::_nil();class Callback_impl    : virtual public POA_Callback{public:    void    reply(const char* msg)    { cout << "got: " << msg << endl; }};class ORBThread    : virtual public MICOMT::Thread{public:    void    _run(void*)    { orb->run(); }};intmain(int argc, char* argv[]){    orb = CORBA::ORB_init(argc, argv, "mico-local-orb");    CORBA::Object_ptr o = orb->resolve_initial_references("RootPOA");    PortableServer::POA_ptr poa = PortableServer::POA::_narrow(o);    assert(!CORBA::is_nil(poa));    Callback_impl* servant = new Callback_impl;    poa->activate_object(servant);    CORBA::Object_ptr obj = poa->servant_to_reference(servant);    Callback_ptr callback = Callback::_narrow(obj);    PortableServer::POAManager_ptr manager = poa->the_POAManager();    manager->activate();    CORBA::release(manager);    // create and start new thread in which will run orb    // for receiving requests to the Callback object.    ORBThread* main = new ORBThread;    main->start();    CORBA::Object_ptr obj2 = orb->bind("IDL:Sender:1.0");    Sender_ptr sender = Sender::_narrow(obj2);    assert(!CORBA::is_nil(sender));    CORBA::String_var msg = "Hello";    cout << "sending message ``" << msg << "'' to the server." << endl;    sender->message(callback, msg);      for (;;) {	// we can do something in the infinite loop#ifndef _WIN32	sleep(1);#else // _WIN32	_sleep(1);#endif // _WIN32    }    // or we can use main->wait() for waiting on main thread finish    return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -