DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

Network Programmer's Guide and Reference



About this book
        How this book is organized
        Related documentation
                Commercial books and articles
        Reference manual sections
        How can we improve this book?

Developing network-based applications
        About the APIs
                Sockets
                TLI and XTI
        About the protocols and services
                TCP/IP
                NFS
                NIS
                IPX/SPX
                SAPD
                NetBIOS
                SMUX

Developing applications using XTI or TLI
        Why use XTI?
        What XTI can do
        Network programming concepts
                Client-Server computing
                How clients and servers communicate
                Transport addresses
                Modes of service
                        Connection-oriented service
                        Connectionless service
                Synchronous and asynchronous operation
                Flow of transmitted data
                Structure of transmitted data
                Priority of transmitted data
        Transport provider states
        Error conditions
        Options management
        Event management
        Compiling and linking with XTI
        XTI and TLI
        XTI and sockets
        Transport-specific issues
        Pseudo-code examples
                Client pseudo-code
                Server pseudo-code
        Implementing a read/write interface
        For more about XTI and TLI

Developing applications over TCP/IP using TLI
        Transport-provider-specific areas of TLI
        TCP/IP transport service pathnames
        Transport addresses
        Transport provider option management
                Example
                How TLI functions behave over TCP and UDP
                        t_accept
                        t_alloc
                        t_bind
                        t_close
                        t_connect
                        t_error
                        t_free
                        t_getinfo
                        t_getstate
                        t_listen
                        t_look
                        t_open
                        t_optmgmt
                        t_rcv
                        t_rcvconnect
                        t_rcvdis
                        t_rcvrel
                        t_rcvudata
                        t_rcvuderr
                        t_snd
                        t_snddis
                        t_sndrel
                        t_sndudata
                        t_sync
                        t_unbind
        Annotated code sample

Developing applications over IPX/SPX using TLI
        Internet Packet Exchange (IPX)
        Sequence Packet Exchange (SPX)
        Service Advertising Protocol (SAP)
        SCO IPX/SPX programming issues
                Network byte ordering
                IPX addresses
                        Obtaining a destination address
                Socket numbers
                        Obtaining a static socket number
                        Obtaining a dynamic socket number
                Novell object types
        Using the IPX protocol
                Sequence of TLI functions for IPX
                General characteristics of IPX
                IPX packet structure
                Accessing IPX
                        t_open
                        t_optmgmt
        Using the SPX protocol
                Sequence of TLI functions for SPX
                SPX driver characteristics
                        Connection requests
                SPX packet structure
                Initializing SPX
                Accessing SPX
                        t_rcvdis
        Using the SAP protocol
                SAP services
                The Service Advertising Protocol daemon SAPD
                Configuring and testing SAPD
                SAP packets
                        SAP response packets
                Accessing SAP
        For more about IPX/SPX

Developing applications over NetBIOS using XTI
        Using XTI over NetBIOS
                NetBIOS: from DOS to UNIX systems
                NetBIOS names and addresses
                Sending NetBIOS broadcast datagrams
                Creating NetBIOS sessions
                How XTI functions behave differently over NetBIOS
                        t_accept
                        t_alloc
                        t_bind
                        t_close
                        t_connect
                        t_error
                        t_free
                        t_getinfo
                        t_getstate
                        t_listen
                        t_look
                        t_open
                        t_optmgmt
                        t_rcv
                        t_rcvconnect
                        t_rcvdis
                        t_rcvrel
                        t_rcvudata
                        t_rcvuderr
                        t_snd
                        t_snddis
                        t_sndrel
                        t_sndudata
                        t_sync
                        t_unbind
        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
        Annotated code sample
        Getting more information

Developing distributed applications using ONC RPC and XDR
        Compiling RPC code
        Using remote procedure calls
                Using the highest layer
                Using the intermediate layer
                        Assigning program numbers
                        Using XDR to pass arbitrary data types
                Using the lower layers
                        Sample server program
                        Using XDR to allocate memory
                        Sample client program
                Using RPC/XDR for other tasks
                        Using select on the server
                        Using broadcast RPC calls
                        Batching
                        Using authentication
                        Supporting multiple program versions
                        Using different serialization and deserialization
                        Using callback procedures
        Using the XDR protocol
                Compiling programs that contain XDR routines
                Creating portable data with XDR
                        writer
                        reader
                        writer
                        reader
                        Implementation details
                XDR library primitives
                        Number filters
                        Floating-Point filters
                        Enumeration filters
                        No data
                        Constructed data type filters
                        Non-filter primitives
                        XDR operation directions
                XDR stream access
                        Standard I/O streams
                        Memory streams
                        Record (TCP/IP) streams
                XDR streams implementation
                        The XDR object
                XDR standard
                        Basic block size
                        Integer
                        Unsigned integer
                        Enumerations
                        Booleans
                        Hyper integer and hyper unsigned
                        Floating point and double precision
                        Standard opaque data
                        Counted-Byte strings
                        Fixed arrays
                        Counted arrays
                        Structures
                        Standard discriminated unions
                        Missing specifications
                        Library primitive / XDR standard cross-reference
                        The record marking standard
                Advanced topics -- linked lists

Developing applications over TCP/IP using Internet sockets
        Socket types (Internet domain)
                Stream sockets
                Datagram sockets
                Raw sockets
        Creating a socket (Internet domain)
                Selecting a protocol (Internet domain)
                Socket creation errors
                Binding socket names (Internet domain)
                Making a connection (Internet domain)
                The server (Internet domain)
                Using wildcards in socket addresses (Internet domain only)
                Accepting a connection (Internet domain)
                Connection errors (Internet domain)
        Transferring data via a socket (Internet domain)
        Closing sockets and discarding queued data (Internet domain)
        Connectionless sockets (Internet domain)
                Sending from datagram sockets (Internet domain)
                Receiving on datagram sockets (Internet domain)
                Using connect on a datagram socket (Internet domain)
        Input/output multiplexing (Internet domain)
        Networking library routines used for Internet sockets
                Mapping host names (Internet domain)
                Mapping network names (Internet domain)
                Mapping protocol names (Internet domain)
                Mapping service names (Internet domain)
                Handling network dependencies (Internet domain)
                Manipulating byte strings and handling byte swapping (Internet domain)
        Using the client-server model (Internet domain)
                Server processes (Internet domain)
                Client processes (Internet domain)
                Server processes without connections (Internet domain)
        IPC programming techniques (Internet domain)
                Out-of-band data (Internet domain)
                Signal and process groups (Internet domain)
                Pseudo terminals (Internet domain)
                Internet address binding
                A typical TCP/IP process
        Adding and checking for services (Internet domain)
        Error handling in programming (Internet domain)
                List of error codes (Internet domain)
        Socket Tutorial (Internet domain)
                Creating a socket (Internet domain)
                Address Structures and Routines (Internet domain)
                Elementary system calls
                        Server (Internet domain)
                        Client (Internet domain)
                        Data transfer (Internet domain)
                        Byte order
                Code samples (Internet domain)
                        Server (Internet domain)
                        Client (Internet domain)
                Datagrams in the Internet Domain

Interprocess communication using UNIX domain sockets
        Socket types (UNIX domain)
                Stream sockets
                Datagram sockets
        Creating a socket (UNIX domain)
                Socket creation errors (UNIX domain)
                Binding socket names (UNIX domain)
                Making a connection (UNIX domain)
                The server (UNIX domain)
                Accepting a connection (UNIX domain)
                Connection errors (UNIX domain)
        Transferring data via a socket (UNIX domain)
        Closing sockets and discarding queued data (UNIX domain)
        Connectionless sockets (UNIX domain)
                Sending from datagram sockets (UNIX domain)
                Receiving on datagram sockets (UNIX domain)
                Using connect on a datagram socket (UNIX domain)
        Input/Output multiplexing (UNIX domain)
        Socketpairs (UNIX domain only)
        Networking library routines for UNIX sockets
                Manipulating byte strings (UNIX domain)
        Error handling in programming (UNIX domain)
                Socket error indications (UNIX domain)
                List of error codes
        Socket Tutorial (UNIX domain)
                Creating a socket (UNIX domain)
                Address structures (UNIX domain)
                Elementary system calls (UNIX domain)
                        Servers (UNIX domain)
                        Clients (UNIX domain)
                        Data transfer (UNIX domain)
                Code samples (UNIX domain)
                        Server code (UNIX domain)
                        Client code (UNIX domain)
                Datagrams in the UNIX domain
                Socketpair sample code (UNIX only)

Developing SMUX peers for SNMP agents
        Introduction
        An SMUX overview
                An example SMUX session
                        Initialization
                        Exchange of MIB information
                        Asynchronous events
                        Termination
                How the SMUX protocol works
                        Initialization
                        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
                Initialization
                Opening
                Registering MIB modules
                Main loop
                Events
                Get and set
                Encoding and decoding PDUs
                Terminating foosmuxd's SMUX association
                Error recovery
        Structure and syntax of managed objects
                Syntax
                        INTEGER, Counter, Gauge, and TimeTicks
                        OctetString, DisplayString, and ClnpAddress
                        ObjectID
                        IPAddress and NetworkAddress
                Objects
                Instances
        References
        Glossary

Transport Layer Interface and X/Open Transport Interface (NET)
        Intro(NET)
        t_accept(NET)
        t_alloc(NET)
        t_bind(NET)
        t_close(NET)
        t_connect(NET)
        t_error(NET)
        t_free(NET)
        t_getinfo(NET)
        t_getstate(NET)
        t_listen(NET)
        t_look(NET)
        t_open(NET)
        t_optmgmt(NET)
        t_rcv(NET)
        t_rcvconnect(NET)
        t_rcvudata(NET)
        t_rcvuderr(NET)
        t_rcvdis(NET)
        t_rcvrel(NET)
        t_snd(NET)
        t_snddis(NET)
        t_sndrel(NET)
        t_sndudata(NET)
        t_sync(NET)
        t_unbind(NET)

Socket Library Functions (SLIB)
        Intro(SLIB)
        byteorder(SLIB)
        ether(SLIB)
        ftp_api(SLIB)
        gethostbyname(SLIB)
        gettos(SLIB)
        geturg(SLIB)
        gethostname(SLIB)
        getnetent(SLIB)
        getprotoent(SLIB)
        getservent(SLIB)
        in_cksum(SLIB)
        inet(SLIB)
        insque(SLIB)
        octetstring(SLIB)
        oid(SLIB)
        rcmd(SLIB)
        resolver(SLIB)
        rexec(SLIB)
        seteuid(SLIB)
        snmpio_api(SLIB)
        smux_api(SLIB)
        smux_pdu(SLIB)
        smux_util(SLIB)
        snmp_authentication(SLIB)
        snmp_pdu(SLIB)
        syslog(SLIB)
        truncate(SLIB)
        varbind(SLIB)

Socket System Calls (SSC)
        Intro(SSC)
        accept(SSC)
        bind(SSC)
        connect(SSC)
        getpeername(SSC)
        getsockname(SSC)
        getsockopt(SSC)
        listen(SSC)
        recv(SSC)
        send(SSC)
        setregid(SSC)
        setreuid(SSC)
        shutdown(SSC)
        socket(SSC)
        socketpair(SSC)

Network System Services (NS)
        Intro(NS)
        bindresvport(NS)
        dbm(NS)
        exportfs(NS)
        fh_fcntl(NS)
        getdomainname(NS)
        getnetgrent(NS)
        getrpcent(NS)
        getrpcport(NS)
        kclt_create(NS)
        lstat(NS)
        ndbm(NS)
        nfs_getfh(NS)
        nfs_svc(NS)
        rex(NS)
        rpc(NS)
        rwall(NS)
        xdr(NS)
        ypclnt(NS)
        yppasswd(NS)

Service Advertising Protocol Daemon library
        ispx_advertise(SAPD)
        ispx_get_address(SAPD)
        ispx_nsrvr_rqst(SAPD)
        ispx_service_query(SAPD)

Index