NetIPC 3000/XL Programmer's Reference Manual (5958-8600)

Table Of Contents
Chapter 1 33
NetIPC Fundamentals
Using NetIPC for Interprocess Communication
termination request, and may also contain data to be processed by
Process B. Process A then calls IPCRECV.
Process B receives the message from Process A with a call to
IPCRECV and sends a “confirmation message” to Process A via
IPCSEND. This message contains data that indicates to Process A
that it is okay to terminate the connection, and may also contain
data to be processed by Process A. Process B then calls IPCRECV.
Process A receives a “confirmation message” from Process B via the
call to IPCRECV and calls IPCSHUTDOWN to release its VC socket
descriptor and shut down the connection.
The IPCRECV call of Process B completes with a
result
parameter
value of 64 (“REMOTE ABORTED THE CONNECTION”). It then
calls IPCSHUTDOWN to release its VC socket.
Additional NetIPC Functions
Once a virtual circuit is established between processes, descriptors can
be given away, names can be erased, and other functions can be
performed. The following NetIPC calls are provided in addition to those
described in the previous paragraphs to enable you to perform these
additional functions. A brief introduction to each call and its use
follows. A complete description of NetIPC calls is provided in Chapter
3 , “NetIPC Intrinsics.
IPCCONTROL. Performs special operations on sockets such as
enabling synchronous mode, and changing asynchronous timeout
values.
IPCDEST. Returns a destination descriptor which can be used to
send messages to another process. This is an alternative to naming
the descriptor with IPCNAME and acquiring it with IPCLOOKUP.
IPCGET. The companion call to IPCGIVE. Receives a call socket or
virtual connection given away by a process that has called IPCGIVE.
This call is similar to IPCLOOKUP because it enables your process to
acquire a descriptor that can be used in subsequent NetIPC calls.
IPCGIVE. The companion call to IPCGET. Releases ownership of a
descriptor to NetIPC so that it can be acquired by another process
via a call to IPCGET.
IPCNAMERASE. Does the reverse of IPCNAME: it removes a name
associated with a call socket from the socket registry. Only the owner
of a call socket descriptor can remove its name.