0

Xcode 4.4.1 を使用して、iPad2 用の iOS 5.1.1 アプリを作成しています。Java で実行されているローカルの http サーバーを見つけられるようにしたいと考えています。

http サーバーに接続できたら、それと通信するために必要なのは、ポートを含む URL だけです。

私の質問:

1) http サーバー自体を検出するには、Bonjour または http サーバー上で実行されている DNS サーバーを使用する必要がありますか?

2) iPad2 ユーザーを名前とパスワードで認証して、http サーバーを見つけたら、それを操作する必要があります。

iOS 5 および Xcode 4.4.1 で利用可能な場合、ソース コードを含め、これら 2 つの手順をどのように達成するかを理解するための助けが必要です。

4

1 に答える 1

1

1) Bonjour は Java アプリと簡単に連携できます。特にマゾヒスティックな場合は、独自の Java ベースの mDNS (Bonjour) レスポンダーを作成できます (私はそれを行いましたが、ロケット科学ではありません)。しかし、最も簡単な方法は、http サーバーでjMDNSを使用して、存在。コード サンプルをコピーして貼り付けることはしませんが、ほとんどのアプリケーションには十分です。

iOS 側では、NSNetServiceがあなたの味方です。基本的には、バックグラウンドでレスポンダーを開始してサービス (つまり、Java アプリ) を探し、何かが現れたり消えたりしたときにデリゲートを呼び出す必要があります。

id delegateObject; // Assume this exists.
NSNetServiceBrowser *serviceBrowser;

serviceBrowser = [[NSNetServiceBrowser alloc] init];
[serviceBrowser setDelegate:delegateObject];
[serviceBrowser searchForServicesOfType:@"_http._tcp" inDomain:@""];

すべてを説明するガイドがあります。プロトコルは 10 年以上変更されておらず、最新のすべての iOS/OS X バージョンでサポートされています。jMDNS ライブラリも、この段階で十分にテストされています。

を検索する他のアプリに表示されたくない場合は、独自のサービス タイプを作成することを検討してください_http._tcp.。ただし、これは表面的なことです。

2) 最も簡単に機能するのは、HTTP 基本認証です。アプリがサポートする認証の種類や、クライアント側で HTTP リクエストを作成する方法については言及していませんが、これについては既に十分に説明されています。

于 2012-09-26T01:30:57.947 に答える