問題タブ [dns-sd]
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.
c++ - MFC を使用する Windows 上の DNS-SD
Bonjour/Zeroconf サービス検出を追加する必要がある MFC を使用して構築されたアプリケーションがあります。最善の方法を見つけるのに少し苦労しましたが、mDNSresponder ソース コードで提供されている DLL スタブを使用し、それによって生成された静的ライブラリにアプリケーションをリンクすることにしました (これは、システムを使用します)。 dnssd.dll)。
ただし、コールバックが常に呼び出されているとは限らないため、デバイスの検出が停止するため、まだ問題があります。私を混乱させているのは、OSX dns-sd ターミナル サービスを使用する OSX と dns-sd コマンド ライン サービスを使用する Windows では、すべて問題なく動作することです。その上で、クライアント サービスが問題であることを除外し、Windows コードの何が問題なのかを突き止めようとしています。
基本的に DNSBrowseService() を呼び出し、そのコールバックで DNSServiceResolve() を呼び出し、最後に DNSServiceGetAddrInfo() を呼び出してデバイスの IP アドレスを取得し、接続できるようにします。
これらの呼び出しはすべて、次のような WSAAsyncSelect の使用に基づいています。
ただし、サービスが存在するにもかかわらずコールバックが呼び出されない場合があり、コマンドラインを使用してそれを確認できます。
これが 100% 信頼できない理由については完全に困惑していますが、それはコマンド ラインから同じ DLL を使用した場合です。考えられる唯一の説明は、WSAAsyncSelect がソケットの処理メッセージを登録する前に、DNSServiceResolve 関数がコールバック関数を呼び出そうとすることですが、これを回避する方法がわかりません。
私はこれに何年も費やしてきましたが、今では完全にアイデアがありません。「それは本当にばかげた方法です。なぜX、Y、Zをやらないのですか」という提案であっても、どんな提案でも大歓迎です。
ios - GKSession Bluetooth 接続の問題
私の目標は、1 つのマスターと 1..6 クライアントでクライアント/サーバー Bluetooth ゲームを作成することです。デバイスは、iOS 6 以降を搭載した iPad v.2-4 です。
このタスクの最初の実現は、クライアント/サーバー モデルで GKSession クラスを使用することでした。GSSession の実装は、このクラスにはクライアントによるサーバー検出に関する多くの問題が含まれていること、4 つ以上のデバイスが接続されていると不安定になることなどを示しています。
わかりました、GKSession の使用を拒否し、ネットワーク クラスを再設計して、Bluetooth および CFSockets を介して発行する DNSSD-api サーバーで動作するようにしました。この認識はまた、サーバー スポッティングおよび接続の問題のクライアント エラーを示します。
クライアント iPad ごとに一意の SessionID を持つ GKSession オブジェクトを作成し、サーバー iPad に GKSession の配列を実装するという考えが浮かびました。したがって、各クライアントは独自の GKSession で動作します。
Bluetooth経由で7台のiPadと安定した接続を確立する方法と、何が間違っていると思いますか?
python - Python、サブプロセスを実行して出力を読み取り、プログラムをハングさせない
最初の投稿はここで、私は一般的にプログラミングの素人だと言わざるを得ません... 私は osx で python 2.7.5 サブプロセス モジュールを使用して、dns-sd というユーティリティの出力を読み取ります。
目標は、ネットワーク上で実行されている SSH ファイル サーバーを見つけることです。「dns-sd -B _ssh._tcp」を使用します。次の使用で正常に動作します。
これは「ライブ」ユーティリティであり、Python スクリプトを実行し続けると、dns-sd が出力する新しい行が自動的に表示されることに注意してください。典型的な出力は次のとおりです。
私が抱えている問題は、newCheckNAS.StartCheck() を実行するとすぐに、プログラムの残りの部分が dns-sd ユーティリティが完了するのを待って続行することです。ただし、このライブ ユーティリティは停止することはなく、バックグラウンドで監視を続ける必要があります。
さまざまなスレッド、マルチプロセッシング、さらには pybonjour モジュールを見ましたが、それらがどのように機能するのかよくわかりません... このユーティリティを実行するスレッドと、それをリッスンする別のスレッドを開始する必要があると思いますか?
java - Bonjour - Linux 用の DNS_SD.jar ライブラリ?
Bonjour サービスを登録するために、MAC 上で実行されている Java プログラムで dns_sd.jar ライブラリを実際に使用しています。
このライブラリは、パッケージ com.apple.dnssd.* を使用して Java プロジェクトにインポートされます。このライブラリがどこから来たのかを理解するために何度か試しましたか? このライブラリは Apple によって作成され、各 Mac OSx に既にインストールされていると思います。あれは正しいですか ?
このライブラリの同じ API が Linux と Windows で利用できるようです。つまり、特定の OS ごとに他の dns_sd.jar があるということですか? それとも、Linux と Windows で同じライブラリを使用できますか?
このライブラリが Apple 開発者の Web サイトで提供されていないのはなぜですか? 私はどこでも見ました!
LinuxシステムでJavaプログラムを簡単に転置できるかどうか知りたいので、これらすべての質問をしていますか?
ご協力ありがとうございました !
windows - Bonjour DNS-SD コールバックが呼び出されません。コードのどこが間違っていますか?
このブログ記事を参考にして、Bonjour の使用方法を学ぼうとしています。
http://marknelson.us/2011/10/25/dns-service-discovery-on-windows/
そのページの下部にリンクされているサンプル プロジェクトをダウンロードしました。魅力的に動作します。現在、コンソール アプリケーションでサービス ディスカバリをゼロから再現しようとしています。
DNSServiceBrowse
を返しますkDNSServiceErr_NoError
が、コールバックは呼び出されません。どうしたの?
airplay - AirPlayボタンを表示させるには?
現在、ある種のエアプレイ サーバーを作ろうとしていますが、失敗しました。問題は、airplay ボタンが私の iOS デバイスに表示されないことです。このリンクをたどりましたが、airplay サービスを登録する必要がある部分で行き詰まっています。コマンドを使用
dns-sd -R MyAirplayService _airplay._tcp local 22555
しています。サービスは登録済みとして表示されますが、ボタンはありません。ポートを 7000 または 7100 に変更しようとしましたが、結果は同じでした。どこが間違っているのか教えてもらえますか?
linux - DHCPサーバーからドメインが割り当てられた場合、DNS-SDにサービス名を登録するドメインは?
デバイスを DNS-SD に登録したいのですが、DHCP サーバーによって割り当てられたドメインに登録する必要があります。しかし、DHCP サーバーによって割り当てられたドメインを取得するにはどうすればよいでしょうか?
DHCP サーバーがネットワーク上で起動し、デバイスに新しいネットワーク構成が割り当てられたことをどのように確認すればよいですか? また、DHCP サーバーがドメインを割り当てない場合は、ローカル ドメインにサービスを登録します。
resolv.conf からドメインを抽出できますか?
objective-c - iOS SDK を使用した SRV レコードの解決
iOS SDK を使用して DNS SRV レコードを解決したいと考えています。
Apple が提供している高レベルの Bonjour API はすでに試しましたが、必要なものではありません。現在、DNS SD を使用しています。
これは、正しい SRV レコード (例: _xmpp-server._tcp.gmail.com) のみを取得する限り機能しますが、レコードの入力が間違っていると、DNSServiceProcessResult(sdRef) が無限ループに入ります。
DNSServiceProcessResult を停止する方法はありますか、またはそれを呼び出しているスレッドをキャンセルする必要がありますか?
node.js - Node.js UDP クライアントがメッセージを受信しないのはなぜですか?
Node.js でマルチキャスト DNS クライアントを作成しようとしています。
目標は、実行したものと同じ論理出力を表示することです。
これは内部の UDP パケットです。
だから私はこれを書いた:
このスクリプトを実行すると、次のように出力されます。
そして tcpdump は同じものを出力します:
したがって、dns-sd と同じパケットを正しく送信し、同じものを受信しているように見えますが、スクリプトのmessage
イベント ハンドラーは起動しません。なんで?これを修正して、受信したパケットを出力するにはどうすればよいですか?
私はMacOSX10.9、Node.js 0.10.25を使用しています