svcudp_bufcreate man page on IRIX

Man page or keyword search:  
man Server   31559 pages
apropos Keyword Search (all sections)
Output format
IRIX logo
[printable version]



rpc_svc_create(3R)					    rpc_svc_create(3R)

NAME
     rpc_svc_create:  svc_create, svc_destroy, svc_dg_create, svc_fd_create,
     svc_raw_create, svc_tli_create, svc_tp_create, svc_vc_create,
     svcraw_create, svctcp_create, svcudp_bufcreate, svcudp_create - library
     routines for dealing with the creation of server handles

DESCRIPTION
     These routines are part of the RPC library which allows C language
     programs to make procedure calls on servers across the network.  These
     routines deal with the creation of service handles.  Once the handle is
     created, the server can be invoked by calling svc_run.

     This page describes functions in the IRIX standard C library (libc).
     Some of these functions are part of the new Transport Independent RPC
     (TI-RPC) functionality added to the IRIX standard C library in IRIX
     release 6.5.21 (known as BSD TI-RPC) and should not be confused with the
     older TI-RPC functionality in the UNIX System V Networking Library (known
     as System V TI-RPC, see intro(3N)).  In particular, the BSD TI-RPC
     functions use the BSD socket network API instead of the System V TLI
     network API.

     BSD TI-RPC functions are marked in this page as BSD TI-RPC only.  To use
     them code must be compiled with:

	  cc -D_BSD_TIRPC prog.c

     The BSD TI-RPC functions in this page did not exist in IRIX before
     release 6.5.21.  Applications using them should use the
     _MIPS_SYMBOL_PRESENT macro to provide a graceful failure mode when run on
     older IRIX releases.

   Routines
     #include <rpc/rpc.h>
     #ifdef _BSD_TIRPC
     #include <netconfig.h>
     #endif

     int
     svc_create(
	  void (*dispatch)(struct svc_req *, SVCXPRT *),
	  rpcprog_t prognum, rpcvers_t versnum,
	  const char *nettype);

	  BSD TI-RPC only.  svc_create creates server handles for all the
	  transports belonging to the class nettype.

	  nettype defines a class of transports which can be used for a
	  particular application.  The transports are tried in left to right
	  order in NETPATH variable or in top to down order in the netconfig
	  database.

									Page 1

rpc_svc_create(3R)					    rpc_svc_create(3R)

	  If nettype is NULL, it defaults to netpath.  svc_create registers
	  itself with the rpcbind service [see rpcbind(1M)].  dispatch is
	  called when there is a remote procedure call for the given prognum
	  and versnum; this requires calling svc_run [see svc_run in rpc(3R)].
	  If it succeeds, svc_create returns the number of server handles it
	  created, otherwise it returns 0 and the error message is logged.

     void
     svc_destroy(SVCXPRT *xprt);

	  A function macro that destroys the RPC service transport handle
	  xprt.	 Destruction usually involves deallocation of private data
	  structures, including xprt itself.  Use of xprt is undefined after
	  calling this routine.

     SVCXPRT *
     svc_dg_create(int fd, u_int sendsz, u_int recvsz);

	  BSD TI-RPC only.  This routine creates a connectionless RPC service
	  handle, and returns a pointer to it.	This routine returns NULL if
	  it fails, and an error message is logged.  sendsz and recvsz are
	  parameters used to specify the size of the buffers.  If they are 0,
	  suitable defaults are chosen.	 The file descriptor fd should be open
	  and bound.

	  Note:	 since connectionless-based RPC messages can only hold limited
	  amount of encoded data, this transport cannot be used for procedures
	  that take large arguments or return huge results.

     SVCXPRT *
     svc_fd_create(int fd, u_int sendsz, u_int recvsz);

	  BSD TI-RPC only.  This routine creates a service on top of any open
	  and bound descriptor, and returns the handle to it.  Typically, this
	  descriptor is a connected file descriptor for a connection-oriented
	  transport.  sendsz and recvsz indicate sizes for the send and
	  receive buffers.  If they are 0, a reasonable default is chosen.
	  This routine returns NULL, if it fails, and an error message is
	  logged.

     SVCXPRT *
     svc_raw_create(void);

	  BSD TI-RPC only.  This routine creates a toy RPC service transport,
	  to which it returns a pointer.  The transport is really a buffer
	  within the process's address space, so the corresponding RPC client
	  should live in the same address space; [see clnt_raw_create in
	  rpc_clnt_create(3R)].	 This routine allows simulation of RPC and
	  acquisition of RPC overheads (such as round trip times), without any
	  kernel interference.	This routine returns NULL if it fails, and an
	  error message is logged.

									Page 2

rpc_svc_create(3R)					    rpc_svc_create(3R)

     SVCXPRT *
     svc_tli_create(int fd, struct netconfig *netconf,
	  struct t_bind *bindaddr, u_int sendsz,
	  u_int recvsz);

	  BSD TI-RPC only.  This routine creates an RPC server handle, and
	  returns a pointer to it.  fd is the file descriptor on which the
	  service is listening. If fd is RPC_ANYFD, it opens a file descriptor
	  on the transport specified by netconf.  If the file descriptor is
	  unbound, it is bound to the address specified by bindaddr, if
	  bindaddr is non-null, otherwise it is bound to a default address
	  chosen by the transport.  In the case where the default address is
	  chosen, the number of outstanding connect requests is set to 8 for
	  connection-oriented transports.  The user may specify the size of
	  the send and receive buffers with the parameters sendsz and recvsz;
	  values of 0 choose suitable defaults.	 This routine returns NULL if
	  it fails, and an error message is logged.

     SVCPRT *
     svc_tp_create(void (*dispatch)(struct svc_req *, SVCXPRT *),
	  rpcprog_t prognum, rpcvers_t versnum,
	  struct netconfig *netconf);

	  BSD TI-RPC only.  svc_tp_create creates a server handle for the
	  network specified by netconf, and registers itself with the rpcbind
	  service.  dispatch is called when there is a remote procedure call
	  for the given prognum and versnum; this requires calling svc_run.
	  svc_tp_create returns the service handle if it succeeds, otherwise a
	  NULL is returned, and an error message is logged.

     SVCXPRT *
     svc_vc_create(int fd, u_int sendsz, u_int recvsz);

	  BSD TI-RPC only.  This routine creates a connection-oriented RPC
	  service and returns a pointer to it.	This routine returns NULL if
	  it fails, and an error message is logged.  The users may specify the
	  size of the send and receive buffers with the parameters sendsz and
	  recvsz; values of 0 choose suitable defaults.	 The file descriptor
	  fd should be open and bound.

     SVCXPRT *
     svcraw_create(void)

	  This routine creates a toy RPC service transport, to which it
	  returns a pointer.  The transport is really a buffer within the
	  process's address space, so the corresponding RPC client should live
	  in the same address space; see clntraw_create().  This routine
	  allows simulation of RPC and acquisition of RPC overheads (such as
	  round trip times), without any kernel interference.  This routine
	  returns NULL if it fails.

									Page 3

rpc_svc_create(3R)					    rpc_svc_create(3R)

     SVCXPRT *
     svctcp_create(int sock, u_int sendsize, u_int recvsize)

	  This routine creates a TCP/IP-based RPC service transport, to which
	  it returns a pointer.	 The transport is associated with the socket
	  sock, which may be RPC_ANYSOCK, in which case a new socket is
	  created.  If the socket is not bound to a local TCP port, then this
	  routine binds it to an arbitrary port.  Upon completion, -
	  xprt->xp_sock is the transport's socket descriptor, and -
	  xprt->xp_port is the transport's port number.	 This routine returns
	  NULL if it fails. Since TCP-based RPC uses buffered I/O, users may
	  specify the size of the send and receive buffers; values of 0 choose
	  suitable defaults.

     SVCXPRT *
     svcfd_create(int fd, u_int sendsize, u_int recvsize)

	  Create a service on top of any open descriptor. Typically, this
	  descriptor is a connected socket for a stream protocol such as TCP.
	  sendsize and recvsize indicate sizes for the send and receive
	  buffers.  If they are zero, a reasonable default is chosen.

     SVCXPRT *
     svcudp_bufcreate(int sock, u_int sendsize, u_int recvsize)

	  This routine creates a UDP/IP-based RPC service transport, to which
	  it returns a pointer.	 The transport is associated with the socket
	  sock, which may be RPC_ANYSOCK, in which case a new socket is
	  created.  If the socket is not bound to a local UDP port, then this
	  routine binds it to an arbitrary port. Upon completion, -
	  xprt->xp_sock is the transport's socket descriptor, and -
	  xprt->xp_port is the transport's port number.	 This routine returns
	  NULL if it fails.

	  This allows the user to specify the maximun packet size for sending
	  and receiving UDP-based RPC messages.

     SVCXPRT *
     svcudp_create(int sock)

	  This routine creates a UDP/IP-based RPC service transport, to which
	  it returns a pointer.	 The transport is associated with the socket
	  sock, which may be RPC_ANYSOCK, in which case a new socket is
	  created.  If the socket is not bound to a local UDP port, then this
	  routine binds it to an arbitrary port.  Upon completion,
	  xprt->xp_sock is the transport's socket number, and xprt->xp_port is
	  the transport's port number.	This routine returns NULL if it fails.

									Page 4

rpc_svc_create(3R)					    rpc_svc_create(3R)

	  Warning: since UDP-based RPC messages can only hold up to 8
	  kilobytes of encoded data, this transport cannot be used for
	  procedures that take large arguments or return huge results.

SEE ALSO
     getnetconfigent(3R), rpcbind(1M), rpc(3R), rpc_svc_calls(3R),
     rpc_svc_err(3R), rpc_svc_reg(3R)

									Page 5

[top]

List of man pages available for IRIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net