Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
A place to pull or collaborate on AsyncSocket, the public domain Cocoa socket framework. http://code.google.com/p/cocoaasyncso…
* vendor: Revision 95: Minor optimizations concerning IP version detection and Revision 94: AsyncSocket now uses NSUInteger in place of unsigned int for better compatibility with 64-bit.
Latest commit bd5a86c
Apr 26, 2010
|Failed to load latest commit information.|
CocoaAsyncSocket supports TCP and UDP. The AsyncSocket class is for TCP, and the AsyncUdpSocket class is for UDP. Each class is described below. AsyncSocket is a TCP/IP socket networking library that wraps CFSocket and CFStream. It offers asynchronous operation, and a native cocoa class complete with delegate support. Here are the key features: Queued non-blocking reads and writes, with optional timeouts. You tell it what to read or write, and it will call you when it's done. Automatic socket acceptance. If you tell it to accept connections, it will call you with new instances of itself for each connection. You can, of course, disconnect them immediately. Delegate support. Errors, connections, accepts, read completions, write completions, progress, and disconnections all result in a call to your delegate method. Run-loop based, not thread based. Although you can use it on main or worker threads, you don't have to. It calls the delegate methods asynchronously using NSRunLoop. The delegate methods include a socket parameter, allowing you to distinguish between many instances. Self-contained in one class. You don't need to muck around with streams or sockets. The class handles all of that. Support for TCP streams over IPv4 and IPv6. The library is public domain, originally written by Dustin Voss. Now available in a public setting to allow and encourage its continued support. AsyncUdpSocket is a UDP/IP socket networking library that wraps CFSocket. It works almost exactly like the TCP version, but is designed specifically for UDP. This includes queued non-blocking send/receive operations, full delegate support, run-loop based, self-contained class, and support for IPv4 and IPv6.