Chapter 12. Optimizing Stream Sockets

We are just about done with stream sockets. We can make and accept connections and send and receive data. We know just about everything we need to know to write efficient, enjoyable TCP/IP network applications. There are just a few last details to cover; a few refinements to your understanding of stream sockets.

In this chapter, I discuss socket operating modes. The Palm OS platform supports two socket operating modes: blocking and nonblocking. Our sockets have all operated in blocking mode. In this chapter, I discuss nonblocking mode. We explore the costs and benefits of switching from blocking to nonblocking sockets. We use nonblocking sockets to improve the FtpView user experience.

Socket Operating Modes

A blocking socket waits, or blocks, for network operations to complete. Nonblocking sockets do not wait. If an operation blocks, nonblocking sockets immediately return an error indicating this.

For example, let’s look at the receive operation. If we attempt to receive data from a blocking socket and there is no data to receive, the socket waits until the data arrives. A nonblocking socket, on the other hand, returns immediately from the receive operation with an error indicating that the operation would block.

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.