JavaScript is required to for searching.
Skip Navigation Links
Exit Print View
ONC+ Developer's Guide     Oracle Solaris 11 Express 11/10
search filter icon
search icon

Document Information

Preface

1.  Introduction to ONC+ Technologies

2.  Introduction to TI-RPC

What Is TI-RPC?

TI-RPC Issues

Parameter Passing

Binding

Transport Protocol

Call Semantics

Data Representation

Program, Version, and Procedure Numbers

Overview of Interface Routines

Simplified Interface Routines

Standard Interface Routines

Top-Level Routines

Intermediate-Level Routines

Expert-Level Routines

Bottom-Level Routines

Network Selection

Transport Selection

Name-to-Address Translation

Address Look-up Services

Registering Addresses

Reporting RPC Information

3.  rpcgen Programming Guide

4.  Programmer's Interface to RPC

5.  Advanced RPC Programming Techniques

6.  Porting From TS-RPC to TI-RPC

7.  Multithreaded RPC Programming

8.  Extensions to the Sun RPC Library

9.  NIS+ Programming Guide

A.  XDR Technical Note

B.  RPC Protocol and Language Specification

C.  XDR Protocol Specification

D.  RPC Code Examples

E.  portmap Utility

F.  Writing a Port Monitor With the Service Access Facility (SAF)

Glossary

Index

Overview of Interface Routines

RPC has multiple levels of application interface to its services. These levels provide different degrees of control balanced with different amounts of interface code to implement, in order of increasing control and complexity. This section gives a summary of the routines available at each level.

Simplified Interface Routines

The simplified interfaces are used to make remote procedure calls to routines on other machines, and specify only the type of transport to use. The routines at this level are used for most applications. Descriptions and code samples are in the section Simplified Interface.

Table 2-1 RPC Routines–Simplified Level

Routine
Function
rpc_reg()
Registers a procedure as an RPC program on all transports of the specified type
rpc_call()
Remotely calls the specified procedure on the specified remote host
rpc_broadcast()
Broadcasts a call message across all transports of the specified type

Standard Interface Routines

The standard interfaces are divided into top level, intermediate level, expert level, and bottom level. These interfaces give a programmer much greater control over communication parameters such as the transport being used, how long to wait before responding to errors and retransmitting requests, and so on.

Top-Level Routines

At the top level, the interface is still simple, but the program has to create a client handle before making a call or create a server handle before receiving calls. If you want the application to run on all transports, use this interface. You can find the use of these routines and code samples in Top-Level Interface.

Table 2-2 RPC Routines–Top Level

Routine
Description
clnt_create()
Generic client creation. The program tells clnt_create() where the server is located and the type of transport to use.
clnt_create_timed()
Similar to clnt_create() but enables the programmer to specify the maximum time allowed for each type of transport tried during the creation attempt.
svc_create()
Creates server handles for all transports of the specified type. The program tells svc_create() which dispatch function to use.
clnt_call()()
Client calls a procedure to send a request to the server.
Intermediate-Level Routines

The intermediate level interface of RPC enables you to you control details. Programs written at these lower levels are more complicated but run more efficiently. The intermediate level enables you to specify the transport to use. Intermediate-Level Interface describes the use of these routines and code samples.

Table 2-3 RPC Routines–Intermediate Level

Routine
Description
clnt_tp_create()
Creates a client handle for the specified transport
clnt_tp_create_timed()
Similar to clnt_tp_create() but enables the programmer to specify the maximum time allowed
svc_tp_create()
Creates a server handle for the specified transport
clnt_call()()
Client calls a procedure to send a request to the server
Expert-Level Routines

The expert level contains a larger set of routines with which to specify transport-related parameters. Expert-Level Interface describes the use of these routines and code samples.

Table 2-4 RPC Routines–Expert Level

Routine
Description
clnt_tli_create()
Creates a client handle for the specified transport
svc_tli_create()
Creates a server handle for the specified transport
rpcb_set()
Calls rpcbind to set a map between an RPC service and a network address
rpcb_unset()
Deletes a mapping set by rpcb_set()
rpcb_getaddr()
Calls rpcbind() to get the transport addresses of specified RPC services
svc_reg()
Associates the specified program and version number pair with the specified dispatch routine
svc_unreg()
Deletes an association set by svc_reg()
clnt_call()()
Client calls a procedure to send a request to the server
Bottom-Level Routines

The bottom level contains routines used for full control of transport options. Bottom-Level Interface describes these routines.

Table 2-5 RPC Routines–Bottom Level

Routine
Description
clnt_dg_create()
Creates an RPC client handle for the specified remote program using a connectionless transport
svc_dg_create()
Creates an RPC server handle using a connectionless transport
clnt_vc_create()
Creates an RPC client handle for the specified remote program using a connection-oriented transport
svc_vc_create()
Creates an RPC server handle using a connection-oriented transport
clnt_call()()
Client calls a procedure to send a request to the server