[首页] [公司产品] [解决方案] [购买信息] [公司概况] [产品下载]


 

* 编程指南
* 软件下载

 


 
中间件 开发工具

* PowerRPC
 网络软件开发工具
* SUN RPC Win32
 网络软件开发工具

* JavaRPC
 网络软件开发工具

 
编 程 指 南
 

* 第1步 用jrpcgen编译Msg.x
* 第2步 主要客户的编程
* 第3步 编译客户
* 第4步 运行Msg Java客户
* 第5步 编写Msg服务器程序
* 第6步 编译和运行java服务器

 
 


<< 返回

JavaRPC 下载试用版


这是一个开发高性能网络软件的工具。它可以使网络软件的开发变得快速而高效,大大降低开发成本。

RPC广泛应用于UNIX和WINDOWS操作系统,其核心技术在一般网络编程、操作系统和分布计算的教科书与参考书中都会涉及到。较权威的有 :
1) UNIX Network Programming, Volume 2: Interprocess Communications (作者:W. Richard Stevens)
2) TCP/IP网络互联技术 II (清华大学出版社 )
3) Power Programming With RPC (作者:John Bloomer)

JavaRPC 编程指南

一步一步学用Java语言RPC SDK

在这个指南中,我们举例说明怎样为一简单 Msg RPC 服务器建立一个 Java RPC客户。这个指南并不是介绍 ONC RPC 编程,而是关于怎样使用 JavaRPC 工具。如果你不熟悉ONC RPC, 那么 O'Reilly的书 "Power Programming RPC" 是一个很好的老师。

由下列的RPC IDL定义 Msg RPC

%catmsg.x

	version MSGSERV_V1 {

		string sendmsg(string)=2;
         
          		   } = 1;
          
       	} = 1234567;
             

一个简单的子程序 sendmsg 定义了一个RPC 程序的界面,客户把一个字符串传送给服务器,服务器返回同样的字符串。

C版本的 Msg 客户/服务器可从 东方之晓 ONC RPC Win32 For SDK 得到。
现在让我们用Java语言中建立 Msg RPC 客户。

第1步 用jrpcgen编译Msg.x
第2步 主要客户的编程
第3步 编译客户
第4步 运行Msg Java客户
第5步 编写Msg服务器程序
第6步 编译和运行java服务器
第1步.用 jrpcgen 编译 Msg.x

在命令提示界面中运行

%jrpcgen msg.x

演示包含在 win32,solaris 和 linux 上运行的 jrpcgen 二进制文件,它们产生完全相同的Java语言代码。

下列文件将会生成:

  • msgserv.java为RPC界面定义
  • msgserv_cln.java客户界面
  • msgserv_svcb.java服务器界面

在一般情况下jrpcgen将生成四类Java语言源代码文件

  • 为用户定义类型的 XDR 类别
  • RPC程序界面
  • 客户界面类别
  • 服务器界面类别

在我们情况中,因为字符串是一内置类型,而没有XDR类别。

第2步.主要客户的编程

%cat ClientTest.java
import netbula.ORPC.*;
               
	import java.net.*;
	public class ClientTest {  
	public ClientTest () {}
                              
	static public void main(String args[]) {
               
	try {
               
	msgserv_cln cl = new msgserv_cln(args[0], "udp");
               
	cl.setAuth(new AuthUnix
	   ("localhost", 501, 100, new int[2]));                
               
	String msg = "hello world\n";
               
	System.out.println("sending.. ");
               
	for(int i=0; i<5; i++){
                                         
	String reply = cl.sendmsg(msg);
               
	System.out.println(
          "got " + reply +"\n");
               
             }
                                           
	}catch (rpc_err e) {
               
	System.out.println("rpc: " + e.toString());
               
             }
               
           }
        }

这里,我们建造一个Msg 客户用UDP协议连接到在localhost上的Msg 服务器。然后传送一信息,打印回复。

第3步.编译客户

确保netbula.ORPC包裹是在classpath中(简单给CLASSPATH环境变数添加orpc.jar文件)。

通过Java语言编译器运行源文件:

%javac ClientTest.javaMSGSERV_1.java

这个将生产两个类别文件:ClientTest.class和MSGSERV_1.class。

第4步.运行Msg Java客户
  1. 确保Msg服务器(C版本或者Java语言版本)是运行在localhost
  2. 运行客户
    %java ClientTest

如果服务器运行,你应该看见客户端打印出从服务器的回答,否则,它将打印出一RPC错误:程序没有登记。

就是这样!

现在,让我们用Java语言建立Msg 服务器

第5步 编写Msg 服务器程序

jrpcgen产生msgserv_svcb.java,定义了一个包括绝对子程序 sendmsg 的绝对类别msgserv_svcb。为完全编写服务器,你需要为sendmsg提供一个程序体。
 
	import netbula.ORPC.*;

	class msgsvc extends msgserv_svcb {
        //implement the server function, 
		let's just echo the msg back

	String sendmsg(String msg) {

	System.out.println("got msg from client "+ msg);

	return msg;

	 }//main function runs the server

	public static void main(String srgv[]) {

	//let's run the server
		
	new msgsvc().run(); 

	}
            }

第6步 编译和运行java服务器

%javac msgsvc.java
%java msgsvc

*用C编写Msg 服务器/客户

1、使用rpcgen把msg.x文件编译成客户服务器残余。unix具有rpcgen,rpcgen for win32可以从东方之晓得到。

2、编写服务器
请参看JavaRPC包裹中,cservs 路径下的例子。


 
| Home | Products | Purchase | Company | Download |
北京东方之晓科技发展有限公司版权所有
2011©Dongfangzhixiao All Rights Reserved