O'Reilly logo

Palm OS Network Programming by Greg Winton

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Chapter 9. Exchanging Data

Chapter 8 discusses how to connect to a remote host on the network. This chapter is about exchanging data across a socket connection, which is largely what the Net is all about. Everything else is just infrastructure and protocols that you can generally ignore when developing Network Applications.

The Network Library provides support for exchanging data with a remote host either as “streams” of incoming or outgoing data, or individual data packets. In this chapter, we explore streams of data. Streams are based on the TCP protocol, packets are supported by the UDP protocol. We cover TCP streams in this chapter. UDP and datagrams are discussed in Chapter 13.

We explore the File Transfer Protocol (FTP) as an example of sending and receiving data. FTP allows clients to store and retrieve files from a file server across a TCP/IP network. In this chapter, we discuss the logistics of logging in and out from an FTP server.

Streaming Data Exchanges

TCP and the Sockets API provide a simple yet powerful interface for exchanging data. TCP Socket connections present data as a stream, where bytes flow in at one end and flow out at the other in the same order, like box cars on a train going through a tunnel.

Sending Data

The TCP layer maintains a set of buffers for each socket. When an application sends data, the data is copied to the outbound buffers and control returns to the application.

The protocol stack is an operating system service that runs on its own thread. ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required