快速业务通道

用CORBA创建Client/Server程序 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23
rg.omg.CORBA.ORB orb = null; org.omg.CORBA.BOA boa = null; Counter.Count count = null; try { orb = org.omg.CORBA.ORB.init(args, null); } catch (org.omg.CORBA.SystemException se) { System.err.println("Initialization problem in the ORB " + se); System.exit(1); } try { boa = orb.BOA_init(); } catch (org.omg.CORBA.SystemException se) { System.err.println("Initialization problem in the BOA " + se); System.exit(1); } try { count = new CountImpl("test"); boa.obj_is_ready(count); System.out.println(count + " ready."); boa.impl_is_ready(); } catch (org.omg.CORBA.SystemException se) { System.err.println("Ready problem " + se); System.exit(1); } } }

用CORBA创建Client/Server程序(4)

时间:2010-07-08

Server代码用Server.java保存,编译这个Serve.java:

? vbjc Server.java

现在可以测试了,输入如下命令:

> osagent

? vbj Server

将要启动Server,输入如下命令:

> osfind

> vbj Client

OSFIND命令将要确认Server在运行,OSFIND列出它能找到的正在运行的Server和提供服务的对象。第二个命令执行Client,你应该看Client和Server在屏幕上打印的计数值的最新值,你可以运行多次客户端程序来增加这个计数值。

Server代码通过初始化ORB开始运行,接着初始化Server的BOA(Basic Object Adapter),BOA的任务是告诉Server 的ORB什么时候Server的类准备好了,接着Server实例化一个Count对象,命名为"test"并且告诉ORB:Count对象和Server都准备好了。Imple_is_ready方法允许Server在被外部程序访问以前可以实例化多个对象以及执行其它的初始化。

你能够运行Server序在另一台机器上,它应以两种工作方式的一种就行工作。假如Client和Server在同一个网段,OSFIND通过广播一个请求可以找到Server,假如不在同一个网段,你可以修改客户段代码直接连到Server上。

可以在java程序中用CORBA,下面的代码显示一个非常简单的调用这个例子Server的Applet:

// ButtonTest.java import java.awt.*; import java.applet.*; public class ButtonTest extends Applet { Button b; Counter.Count count = null; org.omg.CORBA.ORB orb = null; public ButtonTest() { setLayout(new BorderLayout()); b = new Button("Apply"); add("North", b); // --------- // Bind to the counter String args[] = new String[10]; args[0] = "test"; try { orb = org.omg.CORBA.ORB.init(); } catch (org.omg.CORBA.SystemException se) { System.err.println("ORB init failure " + se); System.exit(1); } try { count = Counter.CountHelper.bind(orb, "test"); } catch (org.omg.CORBA.SystemException se) { System.err.println("ORB bind failure " + se); System.exit(1); } } public void paint(Graphics g) { long i = count.getCounter(); g.drawString(" " + i, 50, 50); } public boolean action(Event ev, Object arg) { if (ev.target instanceof Button) { try { count.increment(); } catch (org.omg.CORBA.SystemException se) { System.err.println("Increment failure " + se); System.exit(1); } repaint(); return true; } return false; } }

用CORBA创建Client/Server程序(5)

时间:2010-07-08

保存为Button.java并且用下面的命令编译:

> vbjc ButtonTest.java

现在创建一个简单的web page来调用这个

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号