DOC HOME
SITE MAP
MAN PAGES
GNU INFO
SEARCH
PRINT BOOK
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
write
read
close
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
Examples
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
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
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
Basics
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
Servers
Clients
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
Inetd
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
Definitions
Enumerations
Constants
Typedefs
Declarations
Structures
Unions
Programs
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
Batching
Authentication
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
Integer
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
References
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 tcpip.so library
The straddr.so library
Using the name-to-address mapping routines
netdir_getbyname
netdir_getbyaddr
netdir_free
taddr2uaddr
uaddr2taddr
netdir_options
netdir_perror
netdir_sperror
The connection server
Connection server components
The connection server application interface
Necessary administration
cs_connect() and cs_perror()
dials()
Files
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
Responsibilities
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
Signals
SIGPOLL and SIGPIPE
Order of linking
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