Free Sample
+ Collection

iOS and OS X Network Programming Cookbook

Jon Hoffman

If you want to develop network applications for iOS and OS X, this is one of the few books written specifically for those systems. With over 50 recipes and in-depth explanations, it’s an essential guide.
RRP $29.99
RRP $49.99
Print + eBook

Want this title & more?

$12.99 p/month

Subscribe to PacktLib

Enjoy full and instant access to over 2000 books and videos – you’ll find everything you need to stay ahead of the curve and make sure you can always get the job done.

Book Details

ISBN 139781849698085
Paperback300 pages

About This Book

  • Use several Apple and third-party APIs to develop both server and client networked applications
  • Shows you how to integrate all of the third-party libraries and APIs with your applications
  • Includes sample projects for both iOS and OS X environments

Who This Book Is For

This book is ideal for developers that want to create network applications for the Apple OS X or iOS platforms. All examples are written in Objective-C using XCode as the IDE. Knowledge of Objective-C and X-Code is essential.

Table of Contents

Chapter 1: BSD Socket Library
Finding the byte order of your device
Retrieving network address information
Performing a network address resolution
Creating an echo server
Creating an echo client
Creating a data server
Creating a data client
Chapter 2: Apple Low-level Networking
Retrieving network address information
Performing a network address resolution
Creating an echo server
Creating an echo client
Creating a server to receive data
Creating a client to send data
Checking the network status
Chapter 3: Using Libnet
Installing libnet
Adding libnet to your project
Resolving names to addresses with libnet
Retrieving local addresses with libnet
Constructing a Ping packet with libnet
Constructing a UDP packet with libnet
Constructing a TCP packet with libnet
Chapter 4: Using Libpcap
Adding libpcap to your project
Retrieving network device information
Capturing packets
Decoding Ethernet headers
Decoding IP headers
Decoding ARP headers
Decoding TCP headers
Decoding UDP headers
Decoding ICMP headers
Filtering packets
Saving a capture file
Creating a simple port scanner using libnet and libpcap together
Chapter 5: Apple High-level Networking
Performing HTTP(S) synchronous GET requests
Performing HTTP(S) synchronous POST requests
Performing HTTP(S) asynchronous GET requests
Performing HTTP(S) asynchronous POST requests
Parsing an RSS feed with NSXMLParser, NSURL, and NSData
Creating a peer-to-peer bluetooth network
Chapter 6: Bonjour
Publishing a Bonjour service
Discovering a Bonjour service
Resolving a Bonjour service
Creating an echo server that uses Bonjour to advertise the service
Creating an echo client that uses Bonjour to discover the service
Chapter 7: AFNetworking 2.0 Library
Checking the network connection type and changes
Creating a web client using AFHTTPSessionManager
Creating a custom response serializer
Using the UIImageView+AFNetworking category
Downloading files with a progress bar
Chapter 8: MKNetworkKit
Creating and using the MKNetworkKit engine
Uploading a file using MKNetworkKit
Downloading a file using MKNetworkKit
Using the UIImageView+MKNetworkKitAdditions.h category and caching the images
Adding a progress bar to upload or download

What You Will Learn

  • Create client- and server-based applications with the BSD socket API
  • Create client- and server-based applications with CFNetworking
  • Publish, find, and connect client applications with servers using Apple’s Bonjour library
  • Use the AFNetworking library to connect to web-based services
  • Connect to web-based services using the MKNetworking library
  • Explore the LibNET packet construction library in OS X
  • Get to grips with the LibPCAP packet capture library in OS X
  • Discover Apple’s high-level APIs to connect to devices via Bluetooth
  • Connect two devices with a Bluetooth connection

In Detail

Darwin, which forms the core set of components for OS X and iOS, is compatible with the Single UNIX Specification Version 3 and POSIX UNIX. Therefore OS X and iOS are UNIX operating systems. While there are numerous books and articles written to teach network development in a UNIX environment there is surprisingly little dedicated to teaching network development specifically in an Apple environment. In this book we will be covering the standard UNIX networking stack with BSD Sockets as well as Apple’s frameworks like CFNetworking and Bonjour.

"iOS and OS X Network Programming Cookbook" is an enthralling code-focused book on developing client and server applications for the iOS and OS X environments. You will learn how to integrate a number of Unix (BSD Sockets), Apple specific (CFNetworking, NSMutableURLRequest, Bonjour) and third party APIs (AFNetworking, MKNetworking) with your own apps.

"iOS and OS X Network Programming Cookbook" begins by showing you how to build both client and server applications using the BSD Socket Library as well as Apple’s CFNetworking library. The sample code includes samples for both iOS and OS X.

It then covers how to add Bonjour to publish, find, and connect to services. This can be used to create peer-to-peer applications over local networks. Finally it shows how to integrate third-party libraries like Libnet, LibPCAP, AFNetworking, and MKNetworking with the reader’s apps.

A lot of developers do not realize that iOS is a full UNIX-based operating system that contains a full set of networking APIs. These APIs can be used to create both client- and server-based applications in the iOS environment as well as OS X. Using the Apple’s Bonjour library you will learn how to publish, find, and connect the services together without hardcoding the connection information. There are also a number of third-party APIs that can be used to easily connect iOS and OS X applications to web-based services. Finally this book will cover several low level libraries like LibNET and LibPCAP on the OS X environment.

"iOS and OS X Network Programming Cookbook" will cover several UNIX, Apple, and third-party libraries and APIs. The book will show the user how to integrate all of these libraries and APIs with their applications.


Read More