0

私はこれを機能させるためにほんの数文字離れていると確信していますが、多分そうではありません...

サーバー側では、これを持っています(Java)。

ServiceInfo info = ServiceInfo.create("_mjdj._tcp.local.", "foo", 1268, 0, 0, "path=index.html");
jmdns.registerService(info);

これは、私のJavaクライアントまたはBonjourブラウザで完全に機能します(サービスはローカルでは「_mjdj._tcp。」と表示されます)。したがって、Javaではこれは機能します。

jmdns.list("_mjdj._tcp.local.");

しかし、iOSクライアントからは、サービス(または何か)を見つけることができないようです。デリゲートメソッドを配置しましたが、これは

NSNetServiceBrowser *browser = [[[NSNetServiceBrowser alloc] init] autorelease];
[browser setDelegate:self];
[browser searchForServicesOfType:@"_mjdj._tcp.local." inDomain:@""];

このエラーが発生します

{
 NSNetServicesErrorCode = "-72004";
 NSNetServicesErrorDomain = 10;
}

そして私がこれをするなら(推測)

[browser searchForServicesOfType:@"_mjdj._tcp." inDomain:@"local"];

netServiceBrowserWillSearch呼び出されますが、その後は何も呼び出されません。

4

1 に答える 1

1
[browser searchForServicesOfType:@"_mjdj._tcp.local." inDomain:@""];

それはあなたのエラーです。あなたが欲しい

[browser searchForServicesOfType:@"_mjdj._tcp." inDomain:@""];

「ローカル」。一部はドメインであるため、ドメイン「ローカル」を使用できます。必要に応じ@""て、デフォルトの登録ドメイン(「ローカル」を含みますが、必ずしもこれに限定されません)を使用することを意味します。あなたが混乱している理由は、JavaAPIが悪いからです。そのようにサービスタイプとドメインを一緒に押しつぶしてはいけません。

@"local"おそらく、末尾の期間を忘れたために、使用の試みが失敗したことに注意してください。ただし、使用することをお勧めします@""

于 2010-09-14T00:53:37.817 に答える