問題タブ [nsnetservice]
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.
iphone - NSNetService - Mac デバイスか iOS デバイスかを確認するにはどうすればよいですか?
NSNetService 経由で配置されたデバイスが iPhone、iPad、または Mac のいずれであるかを確認する方法はありますか? 私が今思いつく唯一の解決策は、見つかったすべてのものに接続して ping を実行し、それぞれがその情報で ping を返すように設定することです。それらすべてで NSNetService を拡張して、それ自体が言う「デバイスタイプ」を持つことができますか? それとももっと簡単な方法がありますか?
xcode - NSNetService の「停止」メソッドが機能しない
Bonjourを使用してブロードキャストするためにNSNetServiceを使用しています。しかし、それを止めたいときは を使用[netService stop]
しnetService
ますNSNetService
。止まらないだけで、呼び出されますが、止まりません。netServiceDidStop
呼ばれていないので、なんとなく止められないのかな。ところで、このプロジェクトでは自動参照カウント (ARC) を使用していますが、これがこの問題の原因であると思われます。何が悪いの?
objective-c - WiFi を介して iPhone アプリケーションで複数のピアを接続する方法は?
複数のピアに接続する必要がある ios(iPhone) アプリケーションのアイデアがあります。コードはWiTab (SampleCode-developer.apple.com) の例に基づいています。
私のアプリケーションが各ピアを開始すると、個別のソケット(CFSocket)を作成し、NSNetService クラスを介して公開します。特定のインスタンス NSNetServiceBrowser クラスは、利用可能なピアを見つけます。テーブルビューで名前を表示します。テーブルビューで行を選択すると、対応するピアアドレスが解決され、接続が確立され、データの送受信が正常に行われました。
しかし、私の意図は、tableView(複数のピア)で複数の行を選択したいということです。選択したピアのアドレスを解決しました。そのために、選択したピア情報を NSMutableArray に保存しました。送信ボタンをクリック(タッチ)すると、選択したデバイスのアドレスを解決し、選択したピアにデータを送信したい。そのために私はこのコードをやった
しかし、それは1つのデバイス(self.selectedService objectAtIndex:0)のみを解決します。したがって、複数のピアアドレスを解決するにはどうすればよいですか/複数のデバイスの接続を確立する方法. 私の疑問は次のとおりです:-
- WiFi経由で複数のデバイスを同時に接続することはできますか?
- はいの場合、同じパターンで接続できるデバイスの最大数は何台ですか?
- 複数接続(TCP/UDP)に便利なCFSocketはどれ?
- 各ピアに複数の CFSocket を作成する必要がありますか?
- はいの場合、どのように?利用可能なドキュメントはありますか?
- セッションを確立するために必要ですか?
- 複数のデバイスのアドレスを解決するには?
objective-c - NSNetService デリゲートと ARC
私のアプリで次を実行しても、デリゲートは呼び出されません。
自動参照カウントを使用しています。ARCなしで同じことをすると完璧に機能します。デリゲートが呼び出される前に、NSNetService シームが解放されます。
どうすればこれを防ぐことができますか?
どうもありがとう!
ipad - エラー NSNetServicesErrorCode = "-72000" の原因は何ですか?
UIWebview を使用してローカル ファイルをロードできる単純なブラウザーを作成します。最初に、html ファイルをプレビューしようとすると、uiwebview はソース ファイルを読み込んでプレビューできます。しかし、アプリを最小化して (アプリがバックグラウンドに入る)、アプリを再度開いた後、次のエラーが発生しました。
その後、uiwebview はソース ファイルをロードできません。エラーをログに記録すると、次の(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
メッセージが表示されます。
アプリはクラッシュしませんが、回転インジケーターは決して止まりません。
誰かがこのケースの原因を教えてもらえますか? そしてそれを解決する方法は?
ありがとうございました :)
ios - NSNetService / Bonjourディスカバリーは、iPhoneシミュレーターでのみ機能します
基本的なクライアント/サーバー相互作用モデルを必要とするiPhoneアプリに取り組んでいます。このために、BonjourとNSNetServiceをNSNetServiceBrowserとともに使用して、同じネットワーク上の他のユーザーを検出します。私は多かれ少なかれ同じサンプルコードを持っているいくつかの異なるガイドに従いました。
関連するサーバーコード
サービスは正常に公開されます。つまり、netServiceDidPublish:コールバックを取得します。
関連するブラウザコード
これで、これらすべての結果が興味深いものになります。
- iPhoneで実行している場合、デバイスは独自に公開されたNSNetServiceのみを表示できます。
- 2台のiPhoneで実行しているため、どちらのデバイスも相手のNSNetServiceを認識できません。
- iPhoneシミュレーターで実行すると、独自のNSNetServicesを含むすべてのNSNetServicesが検出されます。
iPhoneシミュレータのスクリーンショット
私はここでちょっと途方に暮れています...シミュレーターは正確に期待どおりに動作しています。ただし、そうではないデバイスでは、同じWiFi上で2つの異なるiPhoneを相互に表示することはできず、自分自身のみを表示します。ここで何が起こっているのか分かりますか?
iphone - クライアントがbonjourサービスを検出していません
私はiPhoneアプリの設計を学び始めたばかりで、クライアントサーバー環境をセットアップしようとしています。まず、公開するサービスがクライアントに表示されることを確認したいと思います。私はAppleのドキュメントの助けを借りてサーバーとクライアントのコードを書きました。ただし、サービスが公開されているにもかかわらず(netServiceWillPublish(NSNetService *)senderが呼び出されている)、クライアントがこのサービスを識別していないことがわかりました。クライアント側では、デリゲート関数netServiceBrowserWillSearch:(NSNetServiceBrowser *)browserが呼び出され、クライアントがサービスを検索していると思わせます。ただし、didFindServiceデリゲート関数が呼び出されることはありません。なぜこれが機能しないのか、私は困惑しています。私はさまざまな場所からクライアント側のサンプルコードをフォローしましたが、私のコードはそれらのコードと一致しています。
また、私は次の質問があります
サービス名(トランスポートレベルプロトコルに付属)は任意の文字列にすることができますか?または、http://www.dns-sd.org/ServiceTypes.htmlで指定する必要がありますか。また、サービスディスカバリとは別に、これはどのような目的を解決しますか。
サーバー側でNSNetServiceオブジェクトの詳細を印刷すると(ソケットを設定してサービスを開始した後)、ホスト名が(null)として印刷され、アドレスが表示されません。技術的には、サービスが開かれるときに、これらを値に設定するべきではありませんか?はいの場合、誰かが私のコードのどこが間違っているのか教えてください。
サービスの公開と参照が行われるプロジェクトのクライアントとサーバーのコードブロックを添付しました。私はこの問題で私の仕事に行き詰まっているので、助けは非常にありがたいです。
これは、サービスを参照するクライアント側のコードスニペットです
これは、サービスを公開するサーバー側のコードスニペットです
これは、サービスが公開されていることを通知し、NSSocketオブジェクトの詳細を出力するコードスニペットです。
ありがとう
Vivek
cocoa - apple _apple-midi._udp に接続できないのはなぜですか。NSNetService を使用した NetService?
Apple が公開した bonjour ネットサービス _apple-midi._udp で入力ストリームを開くと、エラーが発生します。次のエラーが表示されます: エラー Domain=NSPOSIXErrorDomain Code=61 "操作を完了できませんでした。接続が拒否されました" UserInfo=0x100358780 {}。
Apple は、この方法で MIDI ストリームにアクセスしようとする人々に眉をひそめますか? クライアントが選択できる MIDI ネットワーク ストリームの検出可能なリストを作成しようとしています。MacOSX経由で接続するとき、方程式からAudio Midi Setupアプリケーションを削除しようとしています。
ありがとう、
パトリック
iphone - NSNetService 経由で接続してデータを送信する
NSNetService を使用して、iPhone アプリと Mac アプリの間の通信をセットアップしようとしています。
iPhoneアプリが検出できるNSNetServiceを公開するようにMacアプリをセットアップするところまで来ましたが、それらの間でデータを送信する方法がわかりません。
私の Mac アプリでは、次のように NSNetService を公開しています。
すべてが正常に見え、delegate メソッド- (void)netServiceDidPublish:(NSNetService *)sender
(Mac アプリ内) がトリガーされます。
iPhone アプリで のインスタンスを作成するNSNetServiceBrowser
と、1 ~ 2 秒後にdidFindService
デリゲート メソッドがトリガーされます。
この直後に、次のデリゲート メソッドがトリガーされます- (void)netServiceDidResolveAddress:(NSNetService *)sender
。
ここでは、接続されているかどうかわかりません。接続方法や接続状態が見つかりませんsender
。
だから私は出力ストリームに書き込もうとしました:
また、TXTRecordData を で更新し[sender setTXTRecordData:data];
ます。エラーは発生せず、Mac アプリでは何も起こりません。Mac アプリにはデリゲート メソッドがあり- (void)netService:(NSNetService *)sender didUpdateTXTRecordData:(NSData *)data
ます。
進め方がわかりません。何かが足りないと思いますが、それが Mac アプリにあるのか iPhone アプリにあるのかわかりません。まず、iPhone アプリから Mac アプリに何らかの方法で接続する必要があると思います。Mac アプリでは、接続をリッスンするものを追加します。
iphone - NetService から IP アドレスを取得する方法
NetService オブジェクトを取得したら、次のことを行います:</p>
デリゲート メソッドについて:</p>
ありがとう。