Because Knetbooks knows college students. Our rental program is designed to save you time and money. Whether you need a textbook for a semester, quarter or even a summer session, we have an option for you. Simply select a rental period, enter your information and your book will be on its way!
| 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... MORE |
| 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. |