14) Come è strutturata una RPC con chiamata a basso livello?
La chiamata remota eseguita tramite funzioni avanzate permette di ottenere la massima capacità espressiva.SERVER: preparazione all’accettazione di richieste di servizio
creazione di gestore di protocollo che utilizza una socket per il meccanismo di trasporto UDP o TCP: primitive svcudp_create() o svctcp_create()
distruzione di eventuali precedenti registrazioni con lo stesso numero di programma e versione: pmap_unset()
associazione di una tripla {n_prog,n_vers,protocollo} ad una procedura di dispatching che implementa i vari servizi: svc_register()
ingresso nel ciclo infinito di attesa e servizio della chiamata: svc_run()
CLIENT: preparazione alla richiesta di servizio, chiamata e termine
creazione di gestore di protocollo che utilizza una socket per il meccanismo di trasporto UDP o TCP: primitive clntudp_create() o clnttcp_create()
chiamata alla procedura remota: clnt_call()
interpretazione degli eventuali errori: clnt_perror()
deallocazione del gestore: clnt_destroy()
Osservazioni:
la svcXXX_create() ritorna un puntatore ad un gestore di trasporto (struttura del tipo SVCXPRT)