Apply Now
Contents
Preface xi
PART 1 Tutorial 1
1 Introduction 3
1.1 Networks, Packets, and Protocols 3
1.2 About Addresses 5
1.3 Clients and Servers 6
1.4 What Is a Socket? 7
Thought Questions 8
2 Basic Sockets 9
2.1 Creating and Destroying 9
2.2 Specifying Addresses 10
2.3 TCP Client 1 2
2.4 TCP Server 17
Thought Questions 23
3 Constructing Messages 25
3.1 Encoding Data 26
3.2 Byte Ordering 28
3.3 Alignment and Padding 30
3.4 Framing and Parsing 31
Thought Questions 33
4.Using UDP Sockets 35
4.1 UDPClient 36
4.2 UDP Server 39
4.3 Sending and Receiving with UDP Sockets 41
Thought Questions 42
Socket Programming 43
5.1 Socket Options 43
5.2 Signals 44
5.3 Nonblocking I/O 50
5.4 Multitasking 60
5.5 Multiplexing 72
5.6 Multiple Recipients 77
Thought Questions 85
6 Under the Hood 87
6.1
6.2
6.3
6.4
6.5
Buffering and TCP 89
Deadlock 91
Performance Implications 92
TCP Socket Life Cycle 93
Demultiplexing Demystified 100
Thought Questions 102
Domain Name Service 103
7.1 Mapping Between Names and Internet Addresses
7.2 Finding Service Information by Name 106
104
PART 2 API Reference 109
API Reference 111
Data Structures 111
sockaddr 111
sockaddr_in 111
Socket Setup 112
socket() 112
bind() 112
getsockname() 113
Socket Connection 113
connect () 113
listen() 114
accept() 114
getpeername () 114
Socket Communication
send() 115
sendt o ( ) 115
recv() 116
recvfrom() 116
close() 117
shutdown() 117
115
Socket Control 118
getsockopt() 118
setsockopt() 118
Binary/String Conversion 119
inet_ntoa() 119
inet_addr() 119
htons(), htonl(), ntohs(), ntohl()
Host and Service Information
gethostname() 120
gethostbyname () 120
gethostbyaddr () 121
getservbyname () 121
getservbyport () 122
120
Bibliography 123
119
Index 125