問題タブ [nsnetservicebrowser]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
319 参照

ios - BLE デバイスに接続し、iOS 7 の NSNetService 経由でデータを送受信します

を介して外部デバイスと通信するiPhoneアプリがありますNSNetService。次に、Bluetooth のサポートを追加します。そのため、Bluetooth (BLE) 経由でデバイスを検出して接続し、接続時に 経由でデータを送受信したいNSNetServiceので、既存のコードを再利用します...

これはiOS7+で可能ですか? 例/ヒントをいただければ幸いです。

0 投票する
0 に答える
651 参照

ios - ネットワーク上の任意のデバイスを見つけるための NSNetServiceBrowser

タイトルの通り:

IOS がネットワーク上で Bonjour 以外のデバイスをどのように検出できるのか疑問に思っています。具体的には、将来的に適切な Bonjour アナウンス コードを備えた制御デバイスを見つける必要がありますが、これらのデバイスはすでに消費者の手に渡っており、ファームウェアの更新はオプションではありません。

Bonjour、NSNetServiceBrowser、または Apple Store と互換性のあるその他のライブラリを使用して、ネットワーク上の古いデバイスを検出するにはどうすればよいですか?

IE - Android では、ネットワーク上で利用可能なすべての IP に ping を実行し、独自の mac プレフィックスの arp テーブルを読み取りました。私が理解しているように、これは「公開されていない」ライブラリを使用しているため、Macストアの標準では許可されていません

私はIOSプログラミングにまったく慣れていないので、アドバイスや助けが欲しい. ありがとう?

0 投票する
1 に答える
310 参照

ios - Bonjourサービスの状態を知る

NSNetServiceNSNetServiceBrowserを使用して、ネットワーク上の Bonjour サービスを公開およびスキャンしています。実装は正常に機能しており、サービスはネットワーク上で検出され、通信可能です。私は現在、フレームワークのライフサイクルとこれまでに得たものを理解しようとしています:

これは、アダプターをオンにしてサービスを開始すると発生します。ここで、サービスがネットワーク上でアクティブにアドバタイズされているかどうかを常に把握する必要があります。つまり、他のデバイスがそれを見つけることができるかどうかです。そこで、Wi-Fi アダプターをオフにしてテストします。

次に、アダプターをオンに戻します。

問題は、アダプターのオンとオフの違いがまったくないため、パターンを探すことができないことです。これらのイベントをキャッチできる他の方法はありますか?

編集:最悪になります。両方のアダプターをオフ (機内モード) にしてサービスを開始しても、netServiceDidPublish:が呼び出されます。これまでのところ、netServiceDidNotPublish:は、同じサービスを 2 回登録しようとしたときにのみ呼び出されるようです。これは私にとって非常に直感的ではありません。サービスがネットワークではなくアダプターに公開された可能性があるため、これらのコールバックは非常に誤解を招く可能性があります。この時点で、サービスがネットワーク上で表示されているかどうかを知る方法はありません。

0 投票する
0 に答える
126 参照

ios - NSNetServiceBrowser が「ときどき」Apple TV を検出できない

過接続NSNetServiceBrowserを見つけるためNSNetServiceに使用しています。今、私のコードはほぼ毎回動作します。しかし、たまに (10 回に 1 回)見つけられないか、見つけるのに非常に時間がかかります。Apple TVbonjourNSNetServiceBrowserNSNetServiceApple TV

NSNetServiceBrowserが を検出できなくなったらApple TV、 を再起動する必要がApple TVあり、再びすべてが正常に機能し始めます。

何が問題なのか、再起動するとどのようにApple TV解決するのか理解できません。そのため、問題を特定するためのガイダンスや提案を探しています。

Apple TV のコード:

iOS デバイスのコード:

更新: 2 つの iOS デバイス間の接続を試みても、決して起こりません。その場合、100/100回接続できます。しかし、Apple TV を導入するとすぐに、テレビが見つからない機会が増え始めます。

0 投票する
4 に答える
6492 参照

ios - Swift 3 NetService IP を解決するには?

Swift 3でBonjourを試してみました

これが私のコードです。デリゲートを受け取ることができます

そして、これが私の結果です

netServiceDidResolveAddress サービス名 Webber の Mac mini タイプ _myapp._tcp.、ポート 5678、アドレス Optional([<1002162e c0a80205 00000000 00000000>, <1c1e162e 00000000 fe800000 00000000 000bce7ad 24b000>800]8)

c0a80205 は私が探している IP です => 192.168.2.5

そして、アドレスは [Data] です、とAppleは言います

サービスのアドレス。これは NSData インスタンスの NSArray であり、それぞれが connect(2) での使用に適した単一の struct sockaddr を含んでいます。サービスのアドレスが解決されていない場合、またはサービスがまだ解決されていない場合は、空の NSArray が返されます。

なぜ Data が .btyes を使用できないのか、まだ混乱していますか? Apple が言うように、「これは NSData インスタンスの NSArray です」しかし、私は NSData のようには使用できません

そして、アドレスを読み取り可能な IP 文字列として解決する方法は?

以前にこれを試しましたが、例外として結果が得られません...

どんな提案も役に立ちます、ありがとう