在服务器端处理广播
当客户机通过广播 RPC 调用过程时,服务器通常仅在它可以向客户机提供有用信息时才应答。 这可防止网络充斥无用的应答。
为了防止服务器应答,远程过程可返回空值作为其结果。 由 rpcgen 编译器生成的服务器代码会检测到此情况,并且不会发送应答。 例如,仅当过程将自身解释为服务器时,以下过程才会应答:
void *
reply_if_nfsserver()
{
char notnull; /* just here so we can use its address */
if {access("/etc/exports", F_OK) < 0) {
return (NULL); /* prevent RPC from replying */
}
/*
*return non-null pointer so RPC will send out a reply
*/
return ((void *) ¬null);
}
如果过程返回类型void,服务器必须返回非空指针以便 RPC 应答。