| 
                   | 
               
                  
                   | 
            |
The Sockets Client API has five main client interfaces:
RSocketServ: Establishes and reserves resources for the base communication session to the socket server. All other client interfaces
                  require a valid session to be opened.
               
RConnection: Used to startup and manage active connections.  Multihoming-aware applications must use this API.  It is possible to start
                  a connection either implicitly, via the RSocket or RHostResolver APIs, or explicitly via the RConnection API.
               
RSocket: End point for all socket-based communications.
               
RHostResolver: Makes host name resolution queries.
               
RNetDatabase: Interface for network database access.
               
The Sockets Client API also defines a number of support classes used in conjunction with the above interfaces. These encapsulate:
Addresses: a base address class TSockAddr is defined. Specific protocol address classes are derived from this. Each address can be identified by its Protocol Family,
                  an integer which identifies protocol suites from others.  
               
Resolution queries: queries made through RHostResolver objects are packaged in TNameEntry descriptors. These are packages for TNameRecord objects that contain TSockAddr objects to pass in addresses.
               
Protocol information: a comprehensive description of a protocols capabilities and properties can be dynamically obtained through
                  the TProtocolDesc class. Capabilities are identified by constants.
               
Endian issues: BigEndian, LittleEndian, and ByteOrder can be used to order integers to and from network order.