A.1 Introduction


31.1 Introduction

In this chapter, we will provide an overview of the STREAMS system and the functions used by an application to access a stream. Our goal is to understand the implementation of networking protocols within the STREAMS framework. We will also develop a simple TCP client using the Transport Provider Interface (TPI), the interface into the transport layer that sockets normally use on a system based on STREAMS. Additional information on STREAMS, including information on writing kernel routines that utilize STREAMS, can be found in [Rago 1993].

STREAMS were designed by Dennis Ritchie [Ritchie 1984] and were first made widely available with SVR3 in 1986. The POSIX specification defines STREAMS as an option group , which means a system may not implement STREAMS, but if it does, the implementation must comply with the POSIX specification. Any system derived from System V should provide POSIX, but the various 4.xBSD releases do not provide POSIX.

Be careful to distinguish between STREAMS, the stream I/O system that we are describing in this chapter, versus "standard I/O streams." The latter term is used when talking about the standard I/O library (e.g., functions such as fopen , fgets , printf , and the like).



UNIX Network Programming Volume 1, Third Edition
Unix Network Programming, Volume 1: The Sockets Networking API (3rd Edition)
ISBN: 0131411551
EAN: 2147483647
Year: 2003
Pages: 441

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net