This document is a collection of highly specialized, task-based articles related to specific areas of networking. As with other programming topics documents in this developer library, this document assumes that you already have a deep familiarity with networking concepts.
How to Use This Document
This document includes the following articles:
Using Sockets and Socket Streams—Describes how to use sockets and streams for low-level networking, from the POSIX layer up through the Foundation layer. This article explains how to write both client and server code using current best practices.
Resolving DNS Hostnames—Explains how to resolve DNS hostnames in ways that avoid some of the common pitfalls associated with doing so.
Overriding TLS Chain Validation Correctly—Tells how to safely alter the behavior of Transport Layer Security (TLS) chain validation without exposing your software to serious security risks. This article covers both TCP streams (using the CFStream or NSStream API) and URL requests (using the NSURLConnection API).
Each article is intended to be read by developers who need to write code that performs the specified task.
This document assumes you have already read or otherwise understand the subjects described in the following documents:
Networking Overview—Provides a basic understanding of how networking software works, and how to avoid common mistakes.
Networking Concepts—Provides a basic explanation of socket-based networking at a conceptual level.