MultiNet V5.2 Programmer's Reference Table of Contents
Preface
Purpose of this Guide
Document Structure
Obtaining Customer Support
Before Contacting Customer Support
Sending Electronic Mail
Calling Customer Support
Contacting Customer Support by Fax
Obtaining Online Help
MultiNet Frequently Asked Questions List
Accessing the MultiNet Public Mailing List
Process Software World Wide Web Server
Obtaining Software Patches Over the Internet
Typographical Conventions
Further Reading
Documentation Comments
MultiNet Programming Tutorial
Sockets
TCP Client
TCP Server
UDP
BSD-Specific Tips
TCP/IP Services (UCX) Compatibility
Socket Library Functions
AST Reentrancy
accept()/accept_44()
bcmp()
bcopy()
bind()/bind_44()
bzero()
connect()/connect_44()
Domain Name Resolver Routines
endhostent()
endnetent()
endprotoent()
endservent()
getdtablesize()
gethostbyaddr()/gethostbyaddr_44()
getaddrinfo()
getnameinfo()
gethostbyname()/gethostbyname_44()
gethostbysockaddr()/gethostbysockaddr_44()
gethostname()
getnetbyaddr()
getnetbyname()
getpeername()/getpeername_44()
getprotobyname()
getprotobynumber()
getprotoent()
getservbyname()
getservbyport()
getservent()
getsockname()/getsockname_44()
getsockopt()
gettimeofday()
hostalias()
htonl()
htons()
inet_addr()
inet_lnaof()
inet_makeaddr()
inet_netof()
inet_network()
inet_ntoa()
klread()
klseek()
klwrite()
listen()
multinet_kernel_nlist
nlist()
ntohl()
ntohs()
recv()/recv_44()
recvfrom()recvfrom_44()
recvmsg()/recvmsg_44()
select()
select_wake()
send()/send_44()
sendmsg()/sendmsg_44()
sendto()/sendto_44
sethostent()
setnetent()
setprotoent()
setservent()
setsockopt()
shutdown()
socket()
socket_close()
socket_ioctl()
socket ioctl FIONBIO
socket ioctl FIONREAD
socket ioctl SIOCADDRT
socket ioctl SIOCDELRT
socket ioctl SIOCATMARK
socket ioctl SIOCDARP
socket ioctl SIOCGARP
socket ioctl SIOCSARP
socket ioctl SIOCGIFADDR
socket ioctl SIOCSIFADDR
socket ioctl SIOCGIFBRDADDR
socket ioctl SIOCSIFBRDADDR
socket ioctl SIOCGIFCONF
socket ioctl SIOCGIFDSTADDR
socket ioctl SIOCSIFDSTADDR
socket ioctl SIOCGIFFLAGS
socket ioctl SIOCSIFFLAGS
socket ioctl SIOCGIFMETRIC
socket ioctl SIOCSIFMETRIC
socket ioctl SIOCGIFNETMASK
socket ioctl SIOCSIFNETMASK
socket option SO_BROADCAST
socket option SO_DEBUG
socket option SO_DONTROUTE
socket option SO_ERROR
socket option SO_KEEPALIVE
socket option SO_LINGER
socket option SO_OOBINLINE
socket option SO_RCVBUF
socket option SO_RCVLOWAT
socket option SO_RCVTIMEO
socket option SO_REUSEADDR
socket option SO_SNDBUF
socket option SO_SNDLOWAT
socket option SO_SNDTIMEO
socket option SO_TYPE
socket option TCP_KEEPALIVE
socket option TCP_NODELAY
socket_perror()
socket_read()
socket_write()
vms_errno_string()
$QIO Interface
IO$_ACCEPT
IO$_ACCEPT_WAIT
IO$_BIND
IO$_CONNECT
IO$_GETPEERNAME
IO$_GETSOCKNAME
IO$_GETSOCKOPT
IO$_IOCTL
IO$_LISTEN
IO$_RECEIVE (IO$_READVBLK)
IO$_SELECT
IO$_SEND
IO$_SENSEMODE
IO$_SENSEMODE | IO$M_CTRL
IO$_SETCHAR
IO$_SETMODE|IO$M_ATTNAST
IO$_SETSOCKOPT
IO$_SHUTDOWN
IO$_SOCKET
SYS$CANCEL
SYS$DASSGN
SNMP Extensible Agent API Routines
Requirements
Linking the Extension Agent Image
Installing the Extension Agent Image
Debugging Code
Subroutine Reference
SnmpExtensionInit
SnmpExtensionInitEx
SnmpExtensionQuery
SnmpExtensionTrap
RPC Fundamentals
Introduction
What Are RPC Services?
MultiNet Implementation
Distributed Applications
Components of RPC Services
Run-Time Libraries (RTLs)
RPCGEN Compiler
Port Mapper
RPC Information
Client-Server Relationship
External Data Representation (XDR)
RPC Processing Flow
Local Calls Versus Remote Calls
Handling System Crashes
Handling Errors
Call Semantics
Programming Interface
High-Level Routines
Mid-Level Routines
Low-Level Routines
Transport Protocols
XID Cache
Cache Entries
Cache Size
Execution Guarantees
Enabling XID Cache
Broadcast RPC
Identifying Remote Programs and Procedures
Remote Program Numbers
Remote Version Numbers
Remote Procedure Numbers
Additional Terms
Building Distributed Applications with RPC
Introduction
Distributed Application Components
What You Need to Do
Step 1: Design the Application
Step 2: Write and Compile the Interface Definition
Step 3: Write the Necessary Code
Step 4: Compile All Files
Step 5: Link the Object Code
Step 6: Start the Port Mapper
Step 7: Execute the Client and Server Programs
Obtaining RPC Information
Requesting a Program Listing
RPCGEN Compiler
Introduction
What Is RPCGEN?
Software Requirements
Input Files
Output Files
Preprocessor Directives
Invoking RPCGEN
Creating All Output Files at Once
Creating Specific Output Files
Examples:
Creating Server Stubs for TCP or UDP Transports
Error Handling
Restrictions
RPC RTL Management Routines
Introduction
Management Routines
Routine Name Conventions
Header Files
Management Routines
get_myaddress
getrpcbynumber
getrpcport
RPC RTL Client Routines
Introduction
Common Arguments
Client Routines
auth_destroy
authnone_create
authunix_create
authunix_create_default
callrpc
clnt_broadcast
clnt_call
clnt_control
clnt_create
clnt_destroy
clnt_geterr
clnt_pcreateerror / clnt_spcreateerror
clnt_perrno / clnt_sperrno
clnt_perror / clnt_sperror
clntraw_create
clnttcp_create
clntudp_create / clntudp_bufcreate
RPC RTL Port Mapper Routines
Introduction
Port Mapper Routines
Port Mapper Arguments
pmap_getmaps
pmap_getport
pmap_rmtcall
pmap_set
pmap_unset
RPC RTL Server Routines
Introduction
Server Routines
registerrpc
svc_destroy
svc_freeargs
svc_getargs
svc_getreqset
svc_register
svc_run
svc_sendreply
svc_unregister
svcerr_auth
svcfd_create
svcraw_create
svctcp_create
svcudp_create /
svcudp_bufcreate
svcudp_enablecache
xprt_register
xprt_unregister
RPC RTL XDR Routines
Introduction
XDR Routines
What XDR Routines Do
When to Call XDR Routines
Quick Reference
xdr_accepted_reply
xdr_array
xdr_authunix_parms
xdr_bool
xdr_bytes
xdr_callhdr
xdr_callmsg
xdr_char
xdr_double
Diagnostics
xdr_enum
xdr_float
xdr_free
xdr_hyper
xdr_int
xdr_long
xdr_netobj
xdr_opaque
xdr_opaque_auth
xdr_pmap
xdr_pmaplist
xdr_pointer
xdr_reference
xdr_rejected_reply
xdr_replymsg
xdr_short
xdr_string
xdr_u_char
xdr_u_hyper
xdr_u_int
xdr_u_long
xdr_u_short
xdr_union
xdr_vector
xdr_void
xdr_wrapstring
xdrmem_create
xdrrec_create
xdrrec_endofrecord
xdrrec_eof
xdrrec_skiprecord
xdrstdio_create