2011-07-24 11 views
46

App Storeには、他のコンピュータがファイルを転送するためにiPhone/iPadデバイスにhttp接続できるようにするアプリがいくつかあります。 iOSデバイスでWebサービスが実行されているようです。ちょうどそれがどのように行われたか、どのクラスが使用されたのか不思議です。ウェブサーバーとしてのiOSデバイス

ありがとうございました。

+0

Bonjourはネットワークの検出にのみ使用されます。この場合、上記のアプリケーションはIPを与え、他の人がHTTPブラウザ経由で接続できるようにします。 @ hotpaw2の答えは現場にあります。 – user523234

+0

あなたはどのような解決策を使いましたか?どのようにあなたの経験はありましたか? – Crashalot

答えて

45

デバイスのIPアドレスを表示し、iOSデバイス上で実行中のアプリケーションをリッスンするためのソケットを開き、httpプロトコルを実装するだけです。あなたのための重い物を持ち上げるのほとんどを行うことができますいくつかのサードパーティのライブラリがあります。

CocoaHTTPServerまたはiPhoneHTTPServer3、またはSimpleWebSocketServer、またはMultithreadedHTTPServer3

+0

静的な.htmlファイルのみをホストすることができるか、または「サーバー側」のPHPや何かを動的に実行できるのかと疑問に思う。 – RollRoll

+0

確かに、Swift(またはObj C)で動的サーバーを見つけたり書き込んだりする必要があり、サーバーはiOSアプリケーションと同じプロセス(同じバックグラウンド権限)で実行する必要があります。 – hotpaw2

18

などが答えました。仕事を得るためには主に2つの図書館があります:CocoaHTTPServerMongooseDaemonです。

どちらもObjective-C APIを持っていますが、MongooseDaemonはMongoose HTTPサーバーを囲むラッパーで、CocoaHTTPServerはObjective-Cで完全に書かれています。

我々はので、いくつかの簡単な理由のためCocoaHTTPServerで行くことにしました。でも、HTTPサーバのドキュメントディレクトリを設定するような最も簡単なプロパティがMongooseDaemonに存在しない

  1. 。インクルードされたソースファイル内の#defineを変更して、デフォルトのもの(NSHomeDirectory())を変更できるようにする必要があります。
  2. 現在、MongooseDaemonライブラリには、Objective-Cラッパーで使用される推奨されなくなったメソッドに関する警告が含まれています。
  3. CocoaHTTPServerはBonjourやWebDavのようなものを認識していますが、Mongooseは基本を提供しています。
  4. CocoaHTTPServerには、単純なHTTPサーバー、passwd、SSL/TLS、またはWebDav HTTPサーバーのさまざまな例があります。
  5. CocoaHTTPServerはGCDと連携してマルチスレッドを有効にします。
17

あなたはそれがグランドセントラル派遣に基づいてiOSとMacOSのための現代的なWebサーバーのGCDWebServer

を使用することができます。

+1

CocoaHTTPServerは1年以内に更新されておらず、多くの停滞しているプル要求と問題があります。 GCDWebServerは、TravisCIとSwiftを使用した、まったく新しいものです。 +1。 – funroll

+0

...これは一般に、LG ConnectSDK – loretoparisi

関連する問題