What is included with this book?
Preface to the Second Edition | p. ix |
Introduction | p. 1 |
Networks, Packets, and Protocols | p. 1 |
About Addresses | p. 4 |
Writing Down IP Addresses | p. 4 |
Dealing with Two Versions | p. 5 |
Port Numbers | p. 5 |
Special Addresses | p. 6 |
About Names | p. 7 |
Clients and Servers | p. 7 |
What Is a Socket? | p. 8 |
Basic TCP Sockets | p. 11 |
IPv4 TCP Client | p. 11 |
IPv4 TCP Server | p. 17 |
Creating and Destroying Sockets | p. 22 |
Specifying Addresses | p. 23 |
Generic Addresses | p. 23 |
IPv4 Addresses | p. 24 |
IPv4 Addresses | p. 24 |
Generic Address Storage | p. 25 |
Binary/String Address Conversion | p. 26 |
Getting a Socket's Associated Addresses | p. 26 |
Connecting a Socket | p. 27 |
Binding to an Address | p. 27 |
Handling Incoming Connections | p. 28 |
Communication | p. 30 |
Using IPv6 | p. 30 |
Of Names and Address Families | p. 35 |
Mapping Names to Numbers | p. 35 |
Accessing the Name Service | p. 36 |
Details, Details | p. 40 |
Writing Address-Generic Code | p. 41 |
Generic TCP Client | p. 43 |
Generic TCP Server | p. 46 |
IPv4-IPv6 Interoperation | p. 49 |
Getting Names from Numbers | p. 50 |
Using UDP Sockets | p. 53 |
UDP Client | p. 54 |
UDP Server | p. 57 |
Sending and Receiving with UDP Sockets | p. 60 |
Connecting a UDP Socket | p. 61 |
Sending and Receiving Data | p. 63 |
Encoding Integers | p. 64 |
Sizes of Integers | p. 64 |
Byte Ordering | p. 66 |
Signedness and Sign Extension | p. 67 |
Encoding Integers by Hand | p. 68 |
Wrapping TCP Sockets in Streams | p. 71 |
Structure Overlays: Alignment and Padding | p. 73 |
Strings and Text | p. 76 |
Bit-Diddling: Encoding Booleans | p. 78 |
Constructing, Framing, and Parsing Messages | p. 79 |
Framing | p. 86 |
Text-Based Message Encoding | p. 91 |
Binary Message Encoding | p. 94 |
Putting It All Together | p. 96 |
Wrapping Up | p. 97 |
Beyond Basic Socket Programming | p. 99 |
Socket Options | p. 99 |
Signals | p. 100 |
Nonblocking I/O | p. 106 |
Nonblocking Sockets | p. 107 |
Asynchronous I/O | p. 108 |
Timeouts | p. 112 |
Multitasking | p. 116 |
Per-Client Processes | p. 117 |
Per-Client Thread | p. 123 |
Constrained Multitasking | p. 126 |
Multiplexing | p. 128 |
Multiple Recipients | p. 133 |
Broadcast | p. 134 |
Multicast | p. 137 |
Broadcast vs. Multicast | p. 142 |
Under the Hood | p. 143 |
Buffering and TCP | p. 145 |
Deadlock Danger | p. 148 |
Performance Implications | p. 149 |
TCP Socket Life Cycle | p. 150 |
Connecting | p. 150 |
Closing a TCP Connection | p. 154 |
Demultiplexing Demystified | p. 158 |
Socket Programming in C++ | p. 161 |
PracticalSocket Library Overview | p. 162 |
Plus One Service | p. 164 |
Plus One Server | p. 164 |
Plus One Client | p. 166 |
Running Server and Client | p. 168 |
Survey Service | p. 168 |
Survey Support Functions | p. 169 |
Survey Server | p. 172 |
Survey Client | p. 176 |
Running Server and Client | p. 178 |
Survey Service, Mark 2 | p. 178 |
Socket Address Support | p. 179 |
Socket Iostream Interface | p. 180 |
Enhanced Survey Server | p. 181 |
Enhanced Survey Client | p. 186 |
Administrative Client | p. 187 |
Running Server and Clients | p. 188 |
References | p. 191 |
Index | p. 193 |
Table of Contents provided by Ingram. All Rights Reserved. |
The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.
The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.