Hello World!之COBRA篇

来源:互联网 发布:知夏和迟瑞圆房了吗 编辑:程序博客网 时间:2024/05/15 13:57

                                                             Hello World!之COBRA篇

                                                                                                                                             作者:周顺利

        上一学期搞了一学期的CORBA,没时间整理,今天整理一下.先从最基本的Hello World!开始吧.我的这个程序是在WinXP+BCB6.0+Visobroker下开发的.测试正常.

1.打开bcb6.0,new 一个other/multiplier/COBRA client;弹出的对话框中选择consle application,然后ok,这样我们的客户端的代码框架已经好了.太简单了吧!呵呵!

2,开始编写IDL文件,内容如下:

module test
{
        interface Say

       {
        long Sayhello( in string str);
        };
};
3编译IDL文件,直接在工程文件中选择test.idl,编译就行了.这一步将会生成几个文件,这里主要生成_s和_c结尾的几个文件,-c是客户端需要用到的文件,_s是服务器端需要用到的文件.

4,打开client.cpp,修改刚才生成的客户端框架使它可以工作.首先在文件开头加上刚才说道的客户端需要用到的_c文件,这里是SayServer.h,然后在           CORBA::BOA_var boa = orb->BOA_init(argc, argv);             增加

                test::Say_var say=test::Say::_bind("SayS");
                 say->Sayhello("hello World!");

来连接服务器并调用Sayhello接口.至此,Client已经ok了,编译生成可执行文件.

5 接下来建立Server,new一个other/Multiplier/COBRA Server,同样选择console application ,然后ok这样Server的框架也好了.

6打开server.cpp,在      CORBA::BOA_var boa = orb->BOA_init(argc, argv);    后面增加

                 SayImpl say("SayS");
                 // Wait for incoming requests
                  boa->obj_is_ready(&say);
                 cout << "Say Implitation is ready." << endl;

是将我们定义的Say接口在内存中建立一个实例;然后等待Client调用.编译生成可执行文件.

7运行Server.exe(必须从控制台底下运行,不知道怎么搞的bcb生成的console application 只能从控制台下运行,否则不会有任何结果.),同样运行Client.exe,这是我们就会看到,运行一次Client.exe就会在Server中显示一次Hello World!.

COBRA还有很多高级的应用,我在以后再漫漫整理!!