IOS как веб-сервер
Я видел, что в App Store есть несколько приложений, которые позволяют другим компьютерам делать http-соединение с устройствами iPhone/iPad для передачи файлов. Казалось, что веб-служба работает на устройстве iOS. Любопытно, как это делается/какой класс был использован?
Спасибо.
Ответы
Ответ 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, основанный на большой центральной отправке.
Ответ 4
MongooseDaemon также является хорошим выбором.
https://github.com/face/MongooseDaemon