I\'m looking for an easy way for users to download content from an iPhone to their computer. I\'ve seen other apps that actually turn the iPhone into a server and give the user
Cocoa provides lots of support for client-side networking but not a lot for server-side.
At the lowest level, you can use normal BSD sockets.
The next level up is CoreFoundation (plain C but using Cocoa-like types). Relevant CoreFoundation APIs are CFNetwork
, CFSocket
and CFStream
(CFStream
is a file-stream that can have its source through a network -- it is not a System V style network Stream).
In Objective-C, you can look at NSStream
which is the Objective-C equivalent of CFStream
.
There is a good O'Reilly article on setting up a simple server.
How to Write a Cocoa Web Server
He uses NSFileHandle and NSSocketPort to setup a listener and handle requests. He also gets into some of the detail work of using the BSD sockets directly. I have had luck with this approach in the past.
This was written back in 2006, and I haven't used this on an iPhone project yet, but the classes he uses are pretty common. I would give it a fighting chance of working for an iPhone project.
Google Toolbox for Mac has a class called GTMHTTPServer.
Deusty Designs has a project called CocoaHTTPServer.
You can't use port 80 because it requires root access.