Zwischenschicht von RPC auf der Serverseite

Normalerweise registriert der Server jede Prozedur und geht dann in eine Endlosschleife, die auf Serviceanforderungen wartet. Da nur eine einzige Prozedur registriert werden muss, sieht der Hauptteil der Servernachricht wie folgt aus:

#include <stdio.h>
#include <rpc/rpc.h>
#include <utmp.h>
#include <rpcsvc/rusers.h>

char *nuser();

main()
{
    registerrpc(RUSERSPROG, RUSERSVERS, RUSERSPROC_NUM,
        nuser, xdr_void, xdr_u_long);
    svc_run();        /* Never returns */
    fprintf(stderr, "Error: svc_run returned!\n");
    exit(1);
}

Die Routine registerrpc registriert eine C-Prozedur entsprechend einer bestimmten RPC-Prozedurnummer. Die ersten drei Parameter,RUSERSPROG,RUSERSVERSundRUSERSPROC_NUM, die Programm-, Versions-und Prozedurnummern der zu registrierenden fernen Prozedur angeben. DernuserParameter ist der Name der lokalen Prozedur, die die ferne Prozedur implementiert, und diexdr_voidundxdr_u_longParameter sind die XDR-Filter ( eXternal Data Representation) für die Argumente und Ergebnisse der fernen Prozedur.