Using network programming interfaces

Programming with the X/Open Transport Interface (XTI)
        Overview of the Transport Interface
        Modes of service
                Connection-mode service
                        Local management
                        Connection establishment
                        Data transfer
                        Connection release
                Connectionless-mode service
                State transitions
        Connection-mode service
                Local management
                Connection establishment
                Data transfer
                Connection release
        Connectionless-mode service
                Local management
                Data transfer
                Datagram errors
        A read/write interface
        Advanced topics
                Asynchronous execution mode
                Advanced programming example
        State transitions
                Transport interface states
                Outgoing events
                Incoming events
                Transport user actions
                State tables
        Guidelines for protocol independence
                An example connection-mode client
                An example connection-mode server
                An example connectionless-mode transaction server
                An example read/write client
                An example event-driven server

Developing applications over NetBIOS using XTI
        NetBIOS: from DOS to UNIX systems
                NetBIOS names and addresses
                Sending NetBIOS broadcast datagrams
                Creating NetBIOS sessions
                How XTI functions behave differently over NetBIOS
        How PC NetBIOS is different from XTI over NetBIOS
                Unsupported PC NetBIOS services
                Using XTI functions instead of NCBs
                Shutting down a session with orderly release
                Obtaining session and adapter status
                Example code for obtaining session and adapter status
        Example client and server code
                Example NetBIOS client code
                Example NetBIOS server code
        Getting more information

Programming with sockets
                Socket types
                Socket creation
                Binding local names
                Connection establishment
                Data transfer
                Closing sockets
                Connectionless sockets
                Input/output multiplexing
        Supporting routines
                Host names
                Network names
                Protocol names
                Service names
                Manipulating byte order
        Client/Server model
                Connectionless servers
        Advanced topics
                Out-of-band data
                Non-blocking sockets
                Interrupt driven socket I/O
                Signals and process groups
                Selecting specific protocols
                Address binding
                Broadcasting and determining network configuration
                Socket options
        Moving to IPv6
                The IPv6 sockaddr structure
                Address and protocol families
                Related functions
                Passing sockets between applications
                Porting IPv4 applications to IPv6
                Porting IPv6 -- examples
        Sockets migration and sockets-to-XTI conversion
                Connection mode
                Connectionless mode
                        Socket-based datagrams
                Synchronous and asynchronous modes
                Error handling
                Sockets-to-XTI conversion
                Moving sockets applications to UnixWare 7 Release 7.2

Programming with Remote Procedure Calls (RPC)
        How RPC works
        RPC versions and numbers
        Network selection
                Name-to-address translation
        The rpcbind facility
                Address registration
                The rpcinfo command
        The lower RPC levels
        External Data Representation
        Programming using the rpcgen command
                Converting local procedures into remote procedures
                Generating XDR routines with rpcgen
                Using preprocessing directives
        Common RPC programming techniques
                Network types (transport selection)
                Timeout changes
                Client authentication
                rpcgen command-line define statements
                Server response to broadcast calls
                Port monitor support
                Dispatch tables
                Debugging with rpcgen
        RPC language reference
                Special cases
        Remote Procedure Call programming
                Levels of the RPC package
                The simplified interface to RPC
                        RPC library-based network services
                        Remote Procedure Call and registration
                        Passing arbitrary data types
                The lower levels of RPC
                The top level
                The intermediate level
                The expert level
                The bottom level
                Low-level data structures
                Low-level program testing using raw RPC
        Advanced RPC programming techniques
                Server processing
                Broadcast RPC
                        AUTH_SYS authentication
                        AUTH_DES authentication
                Using port monitors
                Writing multithreaded RPC procedures
                An example of registering multiple versions of a remote procedure
                An example of a remote copy program using connection-oriented transports
                An example of a server placing a call back to a client
                An example of performing memory allocation with XDR

XDR/RPC protocol specification
        Basic XDR assumptions
                XDR data type declarations
                Other XDR declarations
                The XDR language specification
                An example of an XDR data description
        The Remote Procedure Calls (RPC) standard
                The RPC model
                RPC protocol requirements
                        Program number assignment
                        Other uses of the RPC protocol
                The RPC message protocol
                Authentication protocols
                        AUTH_NONE authentication
                        AUTH_SYS authentication
                        AUTH_DES authentication
                Record marking standard
                The RPC language
                        The RPC language specification
                rpcbind protocol
                        rpcbind protocol specification (in RPC language)
                        rpcbind operation

Network services
        Network selection
                How network selection works
                The /etc/netconfig file
                The NETPATH environment variable
                The network selection application programming interface
                Routines that access netconfig via NETPATH
                Routines that access netconfig directly
                Code examples
                        Looping through all visible netconfig entries
                        Looping through user-defined netconfig entries
                        Looping through all netconfig entries
                        Specifying a single transport provider
        Name-to-address mapping
                The name-to-address mapping libraries
                        The library
                        The library
                Using the name-to-address mapping routines
        The connection server
                Connection server components
                The connection server application interface
                        Necessary administration
                        cs_connect() and cs_perror()
                        Authentication scheme file
                        Log file
                        Debug file
        Writing a port monitor for the SAC
                Overview of the Service Access Facility
                        The Service Access Controller
                Port monitor functions
                        Port management
                        Activity monitoring
                        Restricting access to the system
                        Creating utmp entries
                        Port monitor process IDs and lock files
                        Changing the service environment: doconfig()
                        Files: the port monitor administrative file
                        Files: per-service configuration files
                        Private port monitor files
                        Terminating a port monitor
                The Service Access Controller
                        SAC messages
                        Port monitor messages
                        Message classes
                The SAC administrative file: _sactab
                The port monitor administrative file: _pmtab
                The SAC administrative command: sacadm
                The port monitor administrative command: pmadm
                Port monitor-specific administrative command
                The port monitor/service interface
                        New service invocations
                        Standing service invocations
                Port monitor requirements
                        Initial environment
                        Important files
                The per-system configuration file
                Per-port monitor configuration files
                Per-service configuration files
                The configuration language
                Printing, installing, and replacing configuration scripts
                        Per-system scripts
                        Per-port monitor scripts
                        Per-service configuration scripts
                Interpreting configuration scripts: doconfig()
                Sample configuration scripts
                        Per-system script
                        Per-port monitor script
                        Per-service script
                Sample port monitor code
                The sac.h header file
                SAC logic diagram and directory structure
        REXEC client support routines
                Establishing a connection
                Sending input to the remote application
                Receiving output from the remote application
                Terminating a connection
                Releasing the connection number
                Error variables
                Identification and authentication facility
                ID mapping

Multithreaded network programming
        Thread-specific error variables
                SIGPOLL and SIGPIPE
        Order of linking

Developing SMUX peers for SNMP agents
        An SMUX overview
                An example SMUX session
                        Exchange of MIB information
                        Asynchronous events
                How the SMUX protocol works
                        Information exchange
                        Terminating an SMUX association
        Implementing an SMUX peer
                MIB modules
                        Defining MIB modules
                        Compiling MIB modules
                #define statements
                Global declarations
                Initialization of global data
                Writing get functions
                Writing set functions
                Generating traps
                Configuration files
                Compiling an SMUX peer
                Executing an SMUX peer
                Testing an SMUX peer
                Packaging your SMUX peer
        Description of reference peer foosmuxd
                Reading compiled MIB modules
                Registering MIB modules
                Main loop
                Get and set
                Encoding and decoding PDUs
                Terminating foosmuxd's SMUX association
                Error recovery
        Structure and syntax of managed objects
                        INTEGER, Counter, Gauge, and TimeTicks
                        OctetString, DisplayString, and ClnpAddress
                        IPAddress and NetworkAddress