ava)通信。
用CORBA创建Client/Server程序(2)
时间:2010-07-08
客户端代码是非常简单的,下面是你能创建的最小的客户端程序。
// Client.java
public class Client
{
public static void main(String[] args)
{
Counter.Count count = null;
org.omg.CORBA.ORB orb = null;
// Initialize the ORB
orb = org.omg.CORBA.ORB.init();
// Bind to the object on the server
count = Counter.CountHelper.bind(orb, "test");
// Call the server functions
count.increment();
System.out.println("Current Count = " + count.getCounter());
// clean up
count = null;
orb.shutdown();
}
}
在这段代码里你可以看到Client实例化ORB,绑定helper对象为了连接Server,接着开始调用方法,为了编译这段代码,储存文件名为Client.java并且输入:
vbjc Client.java
另外,为ORB可以加入三个jar文件到你的Class Path中并其用javac编译Client(三个jar文件是:vbjorb.jar,vbjapp.jar和vbjtools.jar)
假如你想让客户端代码发现问题并且告诉你,你要修改Client.java如下:
// Client.java
public class Client
{
public static void main(String[] args)
{
Counter.Count count = null;
org.omg.CORBA.ORB orb = null;
// Initialize the ORB
try
{
orb = org.omg.CORBA.ORB.init();
}
catch (org.omg.CORBA.SystemException se)
{
System.err.println("initializtion problem in the ORB " + se);
System.exit(1);
}
// Bind to the object on the server
try
{
count = Counter.CountHelper.bind(orb, "test");
}
catch (org.omg.CORBA.SystemException se)
{
System.err.println("Binding problem in the ORB " + se);
System.exit(1);
}
try
{
count.increment();
System.out.println("Current Count = " + count.getCounter());
}
catch (org.omg.CORBA.SystemException se)
{
System.err.println("Increment failure " + se);
System.exit(1);
}
// clean up
try
{
count = null;
orb.shutdown();
}
catch (org.omg.CORBA.SystemException se)
{
System.err.println("Problem with cleanup " + se);
System.exit(1);
}
}
}
用CORBA创建Client/Server程序(3)
时间:2010-07-08
当你初始化ORB并且绑定到Server时你有多个选项:
1.ORB可以从命令行中接受并且分析这些选项。
2.你可以设置绑定选项。
3.你可以直接连到一个指定的机器。
下面的代码段为你展示了这三个选项
orb = org.omg.CORBA.ORB.init(args, null);
org.omg.CORBA.BindOptions bindOptions = new
org.omg.CORBA.BindOptions();
bindOptions.defer_bind = false;
bindOptions.enable_rebind = true;
count = Counter.CountHelper.bind(orb, "test", "marshall.iftech.com",
bindOptions);
这是初始化从命令行中接受参数,绑定接受了一个指定的机器名和选项。
在Server你需要创建两段代码,一段为了Client绑定而且执行Count类(Count类继承与ImplBase类),如下所示:
// CountImpl.java
public class CountImpl extends Counter._CountImplBase
{
private int c = 0;
public CountImpl(String name) {
super(name);
}
public CountImpl() {
super();
}
public void increment() {
c = c + 1;
System.out.println(c);
}
public int getCounter()
{
return c;
}
}
这个类不能再少了,它的功能只是实现类里的方法,执行这个类的Server代码如下:
// Server.java
public class Server
{
public static void main(String[] args)
{
o
|