| 
                   | 
               
                  
                   | 
            |
A protocol which wishes to provide socket services must be able to
            instantiate CServProviderBase-derived objects using
            CProtocolBase::NewSAPL(). These objects are used by the socket
            server to send data onto the network via the protocol.
         
In general, protocols are either connection oriented or
            connectionless. To a large extent this affects the meaning of many of a
            CServProviderBase-derived object’s member functions—these
            differences are pointed out in the reference documentation for the relevant
            functions.
         
The CServProviderBase class is used by the socket server
            to provide transport services to a single protocol. Several of the calls to
            CServProviderBase have pre-conditions attached to them—for
            example, a connection oriented protocol must have its local address set (either
            by a SetLocalName() or AutoBind()) before it is
            opened.
         
The MSocketNotify class is an abstract base class used
            by an CServProviderBase-derived object through its
            iSocket member to notify the socket server that various events
            have occurred. The MSocketNotify class provides several up-call
            member functions.