Foreword.
Preface.
1.Introduction and Overview.
2.The Client Server Model and Software Design.
3.Concurrent Processing in Client-Server Software.
4.Application Interface to Protocols.
5.The Socket API.
6.Algorithms and Issues in Client Software Design.
7.Example Client Software.
8.Algorithms and Issues in Server Software Design.
9.Iterative, Connectionless Servers (UDP).
10.Iterative, Connection-Oriented Servers (TCP).
11.Concurrent, Connection-Oriented Servers (TCP).
12.Using Threads for Concurrency (TCP).
13.Single-Thread, Concurrent Servers (TCP).
14.Multiprotocol Servers (TCP, UDP).
15.Multiservice Servers (TCP, UDP).
16.Uniform, Efficient Management of Server Concurrency.
17.Concurrency in Clients.
18.Tunneling at the Transport and Application Levels.
19.Application Level Gateways.
20.External Data Representation (XDR).
21.Remote Procedure Call Concept (RPC).
22.Distributed Program Generation (Rpcgen Concept).
23.Distributed Program Generation (Rpcgen Example).
24.Network File System Concepts (NFS).
25.Network File System Protocols (NFS, Mount).
26.A TELNET Client (Program Structure).
27.A TELNET Client (Implementation Details).
28.Streaming Audio and Video Transport (RTP Concept and Design).
29.Streaming Audio and Video Transport (Example RTP Implementation).
30.Practical Hints and Techniques For Linux Servers.
31.Deadlock and Starvation in Client-Server Systems.
Appendix 1:System Calls and Library Routines Used with Sockets.
Appendix 2:Manipulation of Linux File and Socket Descriptors.
Bibliography.
Index.