Какие классы я использую, чтобы заставить iPhone действовать как сервер?


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

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

3 6

3 ответа:

Google Toolbox for Mac имеет класс под названием GTMHTTPServer.

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

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

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

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

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

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

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

Как написать Cocoa Web Server

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

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