BCB环境下CORBA实做之客户端

建立一个CORBA客户端

当你写一个CORBA客户时,第一步是确定客户程序可以与客户机上的ORB软件交谈。要做到这一点,使用CORBA Client wizard。选择File|New并从New Item对话框的Multitier页选择标签为CORBA Client的图标。这个向导让你说明是想建立一个控制台应用程序或是一个窗口应用程序。

正如CORBA服务器程序,你可以指定CORBA客户是否使用VCL类。如果不选VCL复选框,所有生成的代码均可被移植到其它平台上。

在CORBA Client wizard中加入任何所有定义了你想用的服务器对象界面的IDL文件。但也可以不使用任何IDL文件而建立CORBA客户应用程序(确切的说是加入一个生成客户单元到工种中)。这不是首选的方法。当工程包含服务器界面的IDL文件时,你可以用该向导来绑定到服务器上的对象上。

注意:如果你开始CORBA客户工程时没有加入IDL文件,还可以在任何时候用Project|Add to Project加入它。

CORBA Cleint wizard总是建立指定类型的客户端工程,将CORBA库加进工程文件并加入以下起动代码以初始化ORB(Object Request Broker对象请求代理)。

CORBA::ORB_var orb= CORBA::ORB_init(argc,argv);

如果你想通过CORBA服务器的CALLBACK界面的话,要在客户程序中初始化BOA(基本对象配适器)。只要在向导中选上适当的框就可以做到了。 下步,用和写其它CBuider应用程序相同的方法进行应用程序编写。不过,当你使用定义在服务器应用中的对象的时候,不是直接和对象实例打交道,而是取得一个对CORBA对象的引用并使用它来工作。有两种方法可以取得对服务器对象的引用,这和你用哪种绑定相关:

如果使用静态绑定,你可以调用CORBA Object wizard(Edit|Use CORBA Object)。静态绑定比动态快,并且提供编译时类型检查、代码完整(code_completion)等好处。

然而,总有你要到运行时才知道想用的界面或对象的时候,这时就要用动态绑定了。动态绑定使用一个通用的CORBA对象,它用一种名为ANY的特殊CORBA类型将请求传给服务器。

使用存根

存根类是在编译IDL文件时自动生成的。他们定义在生成的客户端文件里,这些文件名字为xxx_c.cpp和xxx_c.hh。

注意:可以让C++BUILDER只建立客户文件(存根)而不要服务器文件,这要通过Project Options对话框的CORBA页来设定。

当写一个CORBA客户端时,不必编辑生成的客户端文件里的代码,相反,在用到时实例化存根类。这要通过选择Edit|Use CORBA Object调出Use CORBA Object wizard。

在这个对象使用向导中,指明包含所需界面的IDL文件,并选择要用的界面。如果只想绑定到特定名字的CORBA对象实例,可以可选的提供一个名字给CORBA对象。

Use CORBA Object wizard让你从以下绑定机制中选择:

如果客户端程序是VCL可用型的窗口应用程序,可以在程序窗体(form)中创建一个属性保存你的CORBA对象存根类的一个实例。你可以把这个属性当作CORBA服务器对象的实例来用。

如果建立的是控制台应用程序,向导会在你的main()函数里作为变量来示例存根类。相似的,它可以把存根类示例为WinMain()中的变量,如果是窗口应用程序的话。

不管是Windows还是Console应用,向导可以把一个属性(property)加入到任何指定单元中的某个类中或起草一个含有一个代表存根实例属性的新类。

时间: 2024-11-03 01:23:48

BCB环境下CORBA实做之客户端的相关文章

BCB环境下CORBA实做之服务器

BCB带有多个向导(Wizards)以简化CORBA服务器的开发过程.以下几步描述了如何用BCB建立一个CORBA服务器. 定义对象界面 使用CORBA server wizard建立一个包含起始时初始化BOA和ORBCORBA代码的服务器应用程序 编译包含界面定义的IDL文件,得到框架及存根. 用CORBA object wizard定义(并实现)类的实现. 完成4建立的类实现CORBA 对象 必要时,修改CORBA界面并将修改加进类实现中. 另外,可以选择将IDL文件注册加入界面库和对象激活

框架-C# network comms的服务端程序一定放置在服务器环境下吗 比如做一个即时通讯系统

问题描述 C# network comms的服务端程序一定放置在服务器环境下吗 比如做一个即时通讯系统 有的人做的即时通讯软件客户端和服务端都是在windows系统下直接运行 就是exe文件 如果用这个框架做是不是还得部署到服务器环境下 初次接触网络通信编程 以前也写过用网络通讯程序 ,只是简单的手机控制电脑关机 用不到框架 现在用感觉一头雾水网上都没入门教程直接就是小案例下载下来也无法运行 解决方案 没必要,客户端操作系统就可以.但是服务器操作系统更适合生产环境,它的配置是面向服务器环境的(比

配置-link环境下使用codefirst做的《网盘软件》“云服务器”怎样的?

问题描述 link环境下使用codefirst做的<网盘软件>"云服务器"怎样的? link环境下使用codefirst做的<网盘软件>,使用"云服务器",操作系统部分的配置操作是怎样的? 解决方案 一般运营商会给你虚拟机模板的,直接选择就可以,不需要配置

在Windows系统和Eclipse IDE集成环境下使用Java进行HBase客户端编程

本文以HBase 0.90.2为例,介绍如何在Windows系统,Eclipse IDE集成环境下,使用Java语言,进行HBase客户端编程,包含建立表.删除表.插入记录.删除记录.各种方式下的查询操作等. 1. 准备工作 1.下载后安装jdk包(这里使用的是jdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008): 2.下载eclipse,解压到本地(这里使用的是eclipse-java-helios-SR2-win32): 3.下载HBase包,解压

BCB环境下建立CORBA客户端

建立一个CORBA客户端 当你写一个CORBA客户时,第一步是确定客户程序可以与客户机上的ORB软件交谈.要做到这一点,使用CORBA Client wizard.选择File|New并从New Item对话框的Multitier页选择标签为CORBA Client的图标.这个向导让你说明是想建立一个控制台应用程序或是一个窗口应用程序. 正如CORBA服务器程序,你可以指定CORBA客户是否使用VCL类.如果不选VCL复选框,所有生成的代码均可被移植到其它平台上. 在CORBA Client w

写了一个混合36进制&amp;amp;amp;26进制算法,若要运行在多线程环境下,怎样保证线程安全和性能?

问题描述 packagealgorithm;/***混合进制计数类*其中最高位(仅一位)为26进制(英文字母表示),除最高位外(共N-1位)用36进制([0~9-A-Z])来表示*/publicclassMixBaseCounter{privatestaticfinalStringBufferbase26=newStringBuffer("ABCDEFGHIJKLMNOPQRSTUVWXYZ");privatestaticStringBuffermixBaseStr=newString

link环境下制作一款《订餐软件》,请问如何对定时发货做定时器归零?

问题描述 link环境下制作一款<订餐软件>,请问如何对定时发货做定时器归零? link环境下制作一款<订餐软件>,请问如何对定时发货做定时器归零? 解决方案 在你的数据库中记录下发货时间,使用触发器,到了时间就对数据清零处理.

link环境下,制作一款《订餐软件》,请问话务员除了输入订单以外还有别的处理方式么?做过的请说说

问题描述 link环境下,制作一款<订餐软件>,请问话务员除了输入订单以外还有别的处理方式么?做过的请说说 link环境下,制作一款<订餐软件>,请问话务员除了输入订单以外还有别的处理方式么?做过的请说说 解决方案 可以使用程控电话交换机,直接连接modem输入电脑.

cxf客户端在linux环境下报错

问题描述 cxf客户端在linux环境下报错 linux下使用的JDK 1.6.0版本 javax.xml.ws.soap.SOAPFaultException: 11|Session| at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:156) at $Proxy42.airMultiAvailability(Unknown Source) 解决方案 换个1.7的JDK试一下