Я бы взглянул на CocoaAsyncSocket, который имеет открытый исходный код и доступен по адресу:
http://code.google.com/p/cocoaasyncsocket/
У них есть очень хорошие примеры того, как использовать фреймворк, и это гораздо лучше, чем иметь дело с вызовами C напрямую ...
CocoaAsyncSocket поддерживает TCP и UDP. Класс AsyncSocket предназначен для TCP, а класс AsyncUdpSocket предназначен для UDP.