Подтвердить что ты не робот

IOS как веб-сервер

Я видел, что в App Store есть несколько приложений, которые позволяют другим компьютерам делать http-соединение с устройствами iPhone/iPad для передачи файлов. Казалось, что веб-служба работает на устройстве iOS. Любопытно, как это делается/какой класс был использован?

Спасибо.

4b9b3361

Ответ 1

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

CocoaHTTPServer или iPhoneHTTPServer3, или SimpleWebSocketServer, или MultithreadedHTTPServer3

Ответ 2

Как и раньше, лучший выбор - использовать для этого стороннюю библиотеку. Для выполнения этой работы существуют в основном две библиотеки: CocoaHTTPServer и MongooseDaemon.

Оба из них имеют API Objective-C, но MongooseDaemon - это всего лишь оболочка HTTP-сервера Mongoose, написанная на простом c, тогда как CocoaHTTPServer полностью написан в Objective-C.

Мы решили пойти с CocoaHTTPServer по нескольким простым причинам:

  • Даже самое простейшее свойство, как установка каталога документа для HTTP-сервера, не существует в MongooseDaemon. Вы должны изменить #define в включенном исходном файле, чтобы иметь возможность изменить его по умолчанию, что указывает на NSHomeDirectory().
  • В настоящее время библиотека MongooseDaemon содержит предупреждения об устаревших методах, используемых в оболочке Objective-C.
  • CocoaHTTPServer знает о таких вещах, как Bonjour или WebDav, в то время как Mongoose просто предоставляет основы.
  • CocoaHTTPServer поставляется со многими примерами, которые варьируются от простых HTTP-серверов, passwd, SSL/TLS или HTTP-сервера WebDav.
  • CocoaHTTPServer работает с GCD, чтобы включить многопоточность.

Ответ 3

Вы можете использовать GCDWebServer

Это современный веб-сервер для iOS и MacOS, основанный на большой центральной отправке.