《编写客户端程序》PPT课件

《编写客户端程序》PPT课件

ID:36908333

大小:528.10 KB

页数:54页

时间:2019-05-10

《编写客户端程序》PPT课件_第1页
《编写客户端程序》PPT课件_第2页
《编写客户端程序》PPT课件_第3页
《编写客户端程序》PPT课件_第4页
《编写客户端程序》PPT课件_第5页
《编写客户端程序》PPT课件_第6页
《编写客户端程序》PPT课件_第7页
《编写客户端程序》PPT课件_第8页
《编写客户端程序》PPT课件_第9页
《编写客户端程序》PPT课件_第10页
资源描述:

《《编写客户端程序》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第六章编写客户端程序第六章编写客户端程序基本知识DIIDSI接口库上下文基本知识请求请求:是一个CORBA伪对象,与一个请求对象相关联的信息包括目标对象引用,操作名字,0或多个参数,可选的上下文,以及用于存放返回结果或异常信息的环境封装一个请求有两种格式静态:请求对象由IDL桩隐式发送动态:显式创建一个请求对象,选择一种通信方式发送并获取响应结果,由接口Request描述Request接口定义了对一个CORBA对象的某一操作的一次调用请求调用一个操作之前必须首先获取目标对象引用见P140调用类型静态调用:客户程序在编译前就知道IDL接口信息动态调用:编写客户程序时尚未确定ID

2、L接口类型运行时利用接口库服务提供的信息创建一个请求对象大部分任务是建立请求对象,而不是调用过程本身选择调用类型简单性DII需由程序员手工完成IDL桩所完成的任务灵活性调用性能通信方式SII支持同步,单向DII支持三种:同步,单向,延迟同步小结:能用SII则用SII编写客户程序——静态publicclassClient{publicstaticvoidmain(String[]args){org.omg.CORBA.ORBorb=org.omg.CORBA.ORB.init(args,null);//利用POA全称与对象标识"BankManager"查找帐户管理员Bank.A

3、ccountManagermanager=Bank.AccountManagerHelper.bind(orb,"/BankPOA","BankManager".getBytes());Stringname=args.length>0?args[0]:"DavidZeng";//请求帐户管理员找出一个指定名字的帐户,无此帐户则新开一个Bank.Accountaccount=manager.open(name);System.out.println(name+“的帐户余额为”+account.getBalance()+"元");account.deposit(200);Syst

4、em.out.println(“存款200元后,余额为”+account.getBalance()+“元”);if(account.withdraw(600)){System.out.println(“取款600元后,余额为”+account.getBalance()+"元");}else{System.out.println("余额不足600元,取款失败,余额保持不变");}}}客户程序Client.java初始化ORB绑定到服务对象调用服务对象提供的服务publicclassClient(){publicstaticvoidmain(String[]args){org.o

5、mg.CORBA.ORBorb=org.omg.CORBA.ORB.init(args,null);org.omg.CORBA.Objectmanager=((com.inprise.vbroker.orb.ORB)orb).bind(“BankPOA”,”BankManager”.getBytes(),null,null);org.omg.CORBA.RequestrequestOpen=manager._request(“open”);Stringname=args.length>0?args[0]:”David”;.requestOpen.add_in_arg().in

6、sert_string(name);requestOpen.set_return_type(orb.get_primitive_tc(org.omg.CORBA.TCKind.tk_objeref));requsetOpen.invoke();org.omg.CORBA.Objectaccount=requestOpen.result().value().extract_Object();org.omg.CORBA.RequestrequestBalance=account._request(“getBalance”);requestBalance.set_return_ty

7、pe(orb.get_primitive_tc(org.omg.CORBA.TCKind.tk_float));requestBalance.invoke();floatbal=requestBalance.resutl().value().extract_float();System.out.println(“帐户”+name+”的余额为”+bal);}}初始化org获取帐户管理员的通用对象引用创建一个调用manager的open()操作的请求对象设置请求的实际参数设置请求的返回结果的类型以同步通信方

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。