web-dev-qa-db-fra.com

Appareils iOS en tant que serveur Web

J'ai vu qu'il existe plusieurs applications sur l'App Store qui permettent à d'autres ordinateurs d'établir une connexion http aux appareils iPhone/iPad pour transférer des fichiers. Il semblait qu'un service Web s'exécute sur l'appareil iOS. Juste curieux de savoir comment cela se fait/quelle classe a été utilisée?

Merci.

51
user523234

Affichez simplement l'adresse IP de l'appareil, ouvrez un socket pour écouter dans une application exécutée sur l'appareil iOS et implémentez le protocole http. Il existe plusieurs bibliothèques tierces qui peuvent faire la plupart des tâches lourdes pour vous:

CocoaHTTPServer ou iPhoneHTTPServer3, ou SimpleWebSocketServer, ou MultithreadedHTTPServer3

48
hotpaw2

Vous pouvez utiliser GCDWebServer

Il s'agit d'un serveur Web moderne pour iOS et MacOS basé sur une grande répartition centrale.

21
loretoparisi

Comme répondu avant, le meilleur choix est d'utiliser une bibliothèque tierce pour cela. Il existe principalement deux bibliothèques pour faire le travail: CocoaHTTPServer et MongooseDaemon .

Les deux ont une API Objective-C mais MongooseDaemon n'est qu'un wrapper autour du serveur HTTP Mongoose écrit en clair c, tandis que CocoaHTTPServer est complètement écrit en Objective-C.

Nous avons décidé d'utiliser CocoaHTTPServer pour quelques raisons simples:

  1. Même la propriété la plus simple comme la définition du répertoire de documents pour le serveur HTTP n'existe pas dans MongooseDaemon. Vous devez changer un #define Dans un fichier source inclus pour pouvoir le changer à partir de celui par défaut, qui pointe vers NSHomeDirectory().
  2. Pour l'instant, la bibliothèque MongooseDaemon contient des avertissements sur les méthodes obsolètes utilisées dans l'encapsuleur Objective-C.
  3. CocoaHTTPServer est au courant de choses comme Bonjour ou WebDav alors que Mongoose ne fait que fournir les bases.
  4. CocoaHTTPServer est livré avec de nombreux exemples qui vont des simples serveurs HTTP, passwd, SSL/TLS ou WebDav HTTP.
  5. CocoaHTTPServer fonctionne avec GCD pour activer le multithreading.
19
Patrik

MongooseDaemon est également un bon choix.

https://github.com/face/MongooseDaemon

9
Vanguarder