Chapter 11. Accepting Connections
In Chapter 8, we learn how to act as a client in a
TCP connection. A TCP client initiates the connection with remote
hosts. In this chapter, we learn how to serve these connections,
accepting requests from remote hosts and we update
FtpView
to serve the FTP data connection.
The FTP data connection is used to exchange files and directory listings. These exchanges involve large amounts of data. In this chapter, we examine ways to handle this data efficiently.
Serving TCP Connections
Before we dive into the details of acting as a connection server for TCP sockets, let’s revisit the three-way handshake. The sequence of events in this handshake is illustrated in Figure 11-1.
Figure 11-1. TCP three-way handshake event sequence
First, the connection server opens a socket and binds it to a specific address and port number. Then the server puts the socket into passive listening mode. This tells the protocol stack to accept connection requests addressed to this socket. The protocol stack sets up two queues for incoming requests, one for incomplete connection requests and one for completed ones.
A connection request arrives as an
incoming SYN
segment. The TCP server responds with
an ACK
segment, and sends a SYN
segment of its own. The connection request is moved to the uncompleted connection queue. When the TCP server receives an acknowledgment from the client, ...
Get Palm OS Network Programming now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.