RPC 语言 ping 程序示例
本节说明远程过程调用语言 (RPCL) ping 程序示例。
以下是 RPCL.: 中描述的简单 ping 程序的规范示例:
/*
* Simple ping program
*/
program PING_PROG {
/* Latest and greatest version */
version PING_VERS_PINGBACK {
void
PINGPROC_NULL(void) = 0;
/*
* Ping the caller, return the round-trip time
* (in microseconds). Returns -1 if the operation
* timed out.
*/
int
PINGPROC_PINGBACK(void) = 1;
} = 2;
/*
* Original version
*/
version PING_VERS_ORIG {
void
PINGPROC_NULL(void) = 0;
} = 1;
} = 1;
const PING_VERS = 2; /* latest version */
在此示例中, ping 程序的第一部分,PING_VERS_PINGBACK,由两个过程组成:PINGPROC_NULL和PINGPROC_PINGBACK.PINGPROC_NULL过程不采用任何参数,并且不返回任何结果。 但是,它对于计算从客户机到服务器的往返时间很有用。 按公约,程序0RPC 协议应该具有相同的语义,并且不需要任何认证。 第二个程序,PINGPROC_PINGBACK,请求来自服务器的反向 ping 操作。 它返回操作所使用的时间量 (以微秒为单位)。
第二部分,或者 ping 程序的原始版本,PING_VERS_ORIG,不包含PINGPROC_PINGBACK过程。 原始版本对于与较旧的客户机程序的兼容性很有用。 当新的 ping 程序成熟时,可能会从协议中完全删除此旧版本。