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还有很多高级的应用,我在以后再漫漫整理!!