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


 

* 简介
* 使用手册
* 软件下载

 


 
中间件 开发工具

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

* JavaRPC
 网络软件开发工具

 
 


<< 返回


东方之晓 RPCGen使用手册

下文是从UNIX系统上的rpcgen(1)操作页修改而来的。

名称
rpcgen-一个RPC协议编译器

使用方法
1、rpcgen infile
2、rpcgen -c|-h|-l|-m [-o outfile] infile
3、rpcgen -s transport [-o outfile] infile

描述
rpcgen是一个编译器,它从一个协议规范文件(通常以.x为后缀)产生C源代码。当不附带选项标记运行时,rpcgen从一个叫做proto.x的输入文件生成下列C文件。

* proto.h
数据类型和函数模型的头文件。

* proto_xdr.c
将变量编码/解码并返回值的XDR程序,被客户机程序和服务器两者使用。

* proto_svc.c
服务器端stub。
这个主要包含启动和注册服务器的代码、接受客户机呼叫请求的发送程序和分配对服务器执行函数的调用。

* proto_clnt.c
客户端stub。

C-预处理程序,CPP,被rpcgen用来预处理那些输入文件。因此,rpcgen并不直接解释.x文件,而是对CPP的输出进行操作。rpcgen处理多重传输从而生成以上列出的每个文件类型,在每一个传递期间,它定义一个不同的CPP符号:
* RPC_HDR 在编译为头文件时被定义
* RPC_XDR 在编译为XDR程序时被定义
* RPC_SVC 在编译为服务器端stub时被定义
* RPC_CLNT 在编译为客户端stub时被定义

例如,要从proto.x生成头文件proto.h,rpcgen经过下列步骤:
1、CPP -DRPC_HDR USER_CPP_FLAGS proto.x > tmpfile
2、把tmpfile编译为proto.h
3、删除tmpfile

东方之晓 RPCGen for Win32 在 MS Visual C++中使用 CL.EXE 作为缺省的C-预处理程序(使用标记 /C /EP /nologo)。CL.EXE必须是在搜索路径中,否则rpcgen将提示"预处理失败"错误。VC++使用有着正确的环境设置的叫做vcvars32.bat的脚本。

你可以通过设置2个环境变量而让rpcgen使用一个不同的CPP,即RPCGEN_CPP 和 RPCGEN_CPP_FLAG,分别对应于CPP程序与关联标记。

Rpcgen做了一点它自己的预处理。任何以%开头的行都直接传递到输出文件,不被rpcgen中断。

你可以通过保留那些未定义的数据类型,来定制你的XDR程序中的一部分。对于每个未定义的数据类型,rpcgen将假定存在一个名为xdr_的程序,预定为未定义类型的名称。

可选项

标记
变量
描述
-c none无 编译为XDR程序
-h none无 编译为C数据定义 (一个头文件)
-l none无 编译为客户端stub
-m none无 编译为服务器端stub,但不生成"main"函数。这个选项对于回呼程序,和那些需要编写自己的"main"函数来设置初值(初始化)的人来说是很有用的。
-o output filename输出文件名 指定输出文件的名称。如果什么也不指定,将使用标准输出(只有-c,-h,-l和-s方式)。
-s transport name传输器名(udp或tcp) 编译为服务器端stub,使用其设定的传输器。支持的传输器是udp和tcp。这个选项可以多次调用,以致编译一个提供多重传输器服务的服务器。当这一选项不设定时,rpcgen生成一个UDP与TCP传输器都能接收的服务器。

Portmapper服务(仅Windows NT)

当一个RPC服务器开始时,它在其本地机器上用Portmapper注册它的程序号和端口。在一个客户机程序呼叫一个RPC之前,它必须和在服务器机器上运行的portmapper联系,找到RPC服务器的端口号。

若要安装portmap服务,请从命令行运行
> pmapsvc -i

若要卸载,请从命令行运行
> pmapsvc -u

若要查看状况
> pmapsvc -v

若要获得帮助,请运行 pmapsvc -h

若要开始服务,请去控制面板,打开图标服务,找到PowerRPC Portmapper并启动它。

如有更多的问题请去技术服务提出。


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