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