Important: The information in this document is obsolete and should not be used for new development.
Chapter 5 - AppleTalk Data Stream Protocol (ADSP)
This chapter describes the AppleTalk Data Stream Protocol (ADSP) that you use to establish a session to exchange data between two network processes or applications in which both parties have equal control over the communication. You should read this chapter if you want to write an application that supports the exchange of more than a small amount of data between two parties who each can both send and receive streams of data.This chapter also describes the AppleTalk Secure Data Stream Protocol (ASDSP), a secure version of ADSP, that allows users of your application to communicate over an ADSP session after the users' identities have been authenticated. Users can then exchange encrypted data over the session. For your application to use ASDSP, the system on which it runs must have the AppleTalk Open Collaboration Environment (AOCE) software installed and must have access to an AOCE server. To use ASDSP, you must also use the Authentication Manager, which is a component of the AOCE software. For information on the Authentication Manager, refer to Inside Macintosh: AOCE Application Programming Interfaces.
ASDSP enhances ADSP with authentication and encryption features. When this chapter discusses components of ADSP, such as connection ends and connection listeners, you can assume that the information also applies to ASDSP. The sections in this chapter that discuss ASDSP describe any specific differences between it and the standard version of ADSP. To use ASDSP, you should be familiar with ADSP.
For an overview of ADSP and how it fits within the AppleTalk protocol stack, read the chapter "Introduction to AppleTalk" in this book, which also introduces and defines some of the terminology used in this chapter. For a complete explanation of the ADSP specification, see Inside AppleTalk, second edition.
Chapter Contents
- About ADSP
- Connections, Connection Ends, and Connection States
- Connection Listeners
- Reliable Delivery of Data
- Unsolicited ADSP Events
- About ASDSP
- The Authentication Process
- The Data Encryption Feature
- Using ADSP
- Allocating Memory for ADSP
- Creating and Using a Connection Control Block
- Opening and Maintaining an ADSP Connection
- Creating and Using a Connection Listener
- Writing a User Routine for Connection Events
- Using ASDSP
- Opening a Secure Connection
- From the Initiator's End
- From the Recipient End
- Sending Encrypted Data Across a Secure Connection
- ADSP Reference
- Data Structures
- The ADSP Connection Control Block Record
- The Address Block Record
- The DSP Parameter Block
- The ASDSP Parameter Block
- The TRSecureParams Record
- Routines
- DESCRIPTION
- Establishing and Terminating an ADSP Connection
- Establishing and Terminating an ADSP Connection Listener
- Maintaining an ADSP Connection and Using It to Exchange Data
- Summary of ADSP
- Pascal Summary
- Constants
- Data Types
- The ADSP Connection Control Block Record
- The Address Block Record
- The DSP Parameter Block
- The ASDSP Parameter Block
- The TRSecureParams Record
- C Summary
- Constants
- Data Types
- The ADSP Connection Control Block Record
- The Address Block Record
- Parameter Block for dspInit and dspCLInit
- Parameter Block for dspOpen, dspCLListen, and dspCLDeny
- Parameter Block for dspClose and dspRemove
- Parameter Block for dspStatus
- Parameter Block for dspRead and dspWrite
- Parameter Block for dspAttention
- Parameter Block for dspOptions
- Parameter Block for dspNewCID
- The DSP Parameter Block
- The ASDSP Parameter Block
- Assembly-Language Summary
- Constants
- ADSP Queue Element Equates and Sizes
- Command Codes
- Open Connection Modes
- Connection States
- Client Event Flags (Bit-Mask)
- Miscellaneous Equates
- ASDSP Encrypt and End-of-Message Flags and Masks
- Data Structures
- ADSP Connection Control Block Data Structure
- DPS Parameter Block Common Fields for ADSP and ASDSP
- dspInit and dspCLInit Parameter Variant
- dspOptions Parameter Variant
- dspOpen, dspCLListen, and dspCLDeny Parameter Variant
- sdspOpen Parameter Variant
- dspNewCID Parameter Variant
- dspClose, dspRemove, and dspCLRemove Parameter Variant
- dspStatus Parameter Variant
- dspRead and dspWrite Parameter Variant
- dspAttention and dspReset Parameter Variant
- Result Codes