Developers who want to program network applications for the Palm operating system (OS) using the Net Library are the target audience of this book. Other methods for connecting Palm devices, such as using the Exchange Manager or the serial port, are not covered here.
The book is divided in two parts. The first part, chapters 1 through 4, provides a general overview of Palm network applications development. The second part, chapters 5 through 13, deals with the Net Library details. The Net Library supports an application programming interface (API) adapted from the Berkeley Sockets API. Two applications are developed to illustrate programming the Net Library. With FtpView, a user can log into a FTP server and list the server’s current directory. Similarly, Daytime Peer allows hosts to request the current date and time service from other hosts.
Chapter 1 is the introduction. Chapter 2 provides an overview of the traditional ISO open systems interconnection (OSI) model, and the specifics of the transmission control protocol/Internet protocol (TCP/IP)-based Palm OS network stack. Chapter 3 explores the design philosophy used to handle the inherent limitations of the Palm OS platform. Chapter 4 examines the development tools available for Palm OS.
Chapter 5 is an overview of the Net Library, and describes the life cycle of every network application: load the protocol stack, connect to a remote host, send and receive data, then close the connection and unload the protocol stack. Chapter 6 shows how to load, open, and close the Net Library. Chapter 7 discusses hostname and service resolution. The Net Library has functions to get the host name, given the IP address and vice versa. It also provides the mapping between well-known service names and their port numbers. Chapter 8 describes how to open, connect, disconnect, and close a socket. Chapter 9 teaches how to send or receive data through an open socket. Chapter 10 explains how to make network applications more responsive, implementing them as state-driven programs instead of being script-oriented. In chapter 11, we learn how to serve a connection initiated in a remote host. Chapter 12 shows the differences between blocking and non-blocking sockets. Finally, chapter 13 deals with programming applications using datagrams instead of sockets.
The book is very well written, and the author guides the reader step-by- step through the world of Palm OS network programming. It includes a section with suggestions for further readings and a good index. Overall, this is a note-worthy book. Its main contribution is that it gathers together information that is scattered throughout non-friendly user manuals and the Internet.