Какие классы я использую, чтобы заставить iPhone действовать как сервер? - PullRequest
6 голосов
/ 26 января 2009

Я ищу простой способ загрузки контента с iPhone на свой компьютер. Я видел другие приложения, которые фактически превращают iPhone в сервер и дают пользователю IP-адрес для навигации на своем компьютере. Я взглянул на некоторые образцы Apple, но ничто не выглядело слишком похоже на то, к чему я стремился.

Итак, как проще всего создать сервер, который прослушивает TCP-порт 80 (даже лучше, HTTP-сервер) и отправляет ответы? Надеюсь, с помощью классов Objective C, но я могу сделать обертку, если ничего не доступно.

Ответы [ 3 ]

4 голосов
/ 26 января 2009

Google Toolbox для Mac имеет класс GTMHTTPServer .

У Deusty Designs есть проект под названием CocoaHTTPServer .

Вы не можете использовать порт 80, потому что он требует root-доступа.

2 голосов
/ 26 января 2009

Какао обеспечивает большую поддержку для сетей на стороне клиента, но не так много для стороны на стороне сервера.

На самом низком уровне вы можете использовать обычные разъемы BSD.

Следующий уровень - CoreFoundation (обычный C, но с использованием какао-подобных типов). Соответствующими API-интерфейсами CoreFoundation являются CFNetwork, CFSocket и CFStream (CFStream - это файловый поток, источником которого может быть сеть - это не сетевой поток в стиле System V.)

В Objective-C вы можете посмотреть на NSStream, который в Objective-C эквивалентен CFStream.

0 голосов
/ 26 января 2009

Есть хорошая статья О'Рейли о настройке простого сервера.

Как написать веб-сервер какао

Он использует NSFileHandle и NSSocketPort для настройки слушателя и обработки запросов. Он также разбирается в деталях работы с непосредственным использованием сокетов BSD. Мне повезло с таким подходом в прошлом.

Это было написано еще в 2006 году, и я еще не использовал его в проекте для iPhone, но используемые им классы довольно распространены. Я бы дал ему шанс работать на iPhone.

...