問題タブ [zeroconf]
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 - Avahi dns_sd 互換レイヤーが Browse コールバックの実行に失敗する
バックグラウンド
dns_sd.h
Haskell 用のクロスプラットフォーム Zeroconf/Bonjour/DNS-SD ライブラリに取り組んでおり、 APIをターゲットにすることが最善の策だと考えました。Linux では、このインターフェースの実装は、Bonjour API のサブセットをサポートすると主張するAvahiによって提供されます。
問題
ライブラリのサニティ チェックとして、API の必要最小限を使用するだけの小さなテスト プログラムを C で作成しました。タイプ のネットワーク上の任意のサービスをブラウズし_http._tcp
、メッセージを見つけるとすぐにメッセージを出力してから終了します。
私の Mac では、このテスト プログラムは C と同等の Haskell の両方で問題なく動作します (私のプリンターが見つかります。エキサイティングです!):
しかし、私の Linux マシンでは、プログラムはコールバックを呼び出さずに終了する前に私を怒らせます。
質問
- Avahi
dns_sd
互換性レイヤーは、依然としてクロスプラットフォーム バインディングの適切なターゲットですか? それとも、ネイティブの Avahi API を使用することについて、その警告メッセージは深刻なので、リターゲットを検討する必要がありますか? - C でのクロスプラットフォーム Zeroconf の最新技術は何ですか?
bonjour - 他のマシンで JmDNS サービスを見つけることができません
jmdns 3.4.1 を使用すると、LAN 内のマシンによってアドバタイズされたサービスを確認できます。サービスを作成して登録することもできるため、自分のマシンで確認できます。しかし、LAN の別のマシンで新しいサービスを作成すると、自分のマシンでそれを見ることができません。他のマシンで次のコードを使用しています。
bonjour - 受信者側でJmDNSサービスのプロパティを確認する方法は?
JmDNSサービスを作成する1つの方法は次のとおりです。
ここで、propsは、サービスのいくつかのプロパティを説明するマップです。誰かがこれらのプロパティの使用法を説明する例を持っていますか?たとえば、受信者の部分でそれらを使用する方法。私はもう試した :
しかし、このサービスを受けているマシンで、これらのプロパティを表示するにはどうすればよいですか?
私はどんな助けにも感謝します...
networking - DNSなしのユニバーサルローカルネットワークの名前解決方法?
DHCP対応のネットワークデバイス用のTCP/IPコードを書いています。ほとんどすべてのWebブラウザ(osx / linux / win上)が名前でアクセスできる、このデバイスが実際にホスト名をアナウンスできる普遍的な方法はありますか?(例:http://mydevice/index.htm)
エンドユーザーが、Windows用のbonjourなどのパッケージをインストールしたり、ネットワーク上にdnsサーバーをインストールしたりするなど、厳しい要件なしに「ストック」コンピューターを使用できるようにするソリューション。
zeroconf / dns-sdは、bonjour(または同様の)サービスがインストールされていないWindowsマシンでは機能せず、LLMNRはそのままのosxマシンでは機能しません。
これを行う単一の方法がない場合、dns-sdとLLMNRの両方に準拠することで、インストールされているOSベースのほとんどをカバーできますか?
winapi - ノードは ZeroConf VPN でどのように通信しますか?
hamachi や tunngle のようなゼロ構成の P2P VPN ソフトウェアを作成したいと考えていました。私は多くのウェブサイトや本、論文を調べましたが、それは私の中でより多くの混乱を引き起こしました. だからここにいます。:)
まず、そのようなソフトウェアを開発する方法を教えてくれるリンクをいくつか教えてください。次に、この Zero Conf VPN がどのように機能するかを段階的に教えてください.
それとは別に、ここに私の疑問があります:私はどこかでこのようなことを読みました-N2N を使用すると、2 台以上のコンピューター間で VPN 接続を作成できます。コンピューターが別のコンピューターに接続するには、各コンピューターで「エッジ」実行可能ファイルを実行する必要があります。任意の数のコンピューターを相互に接続できますが、すべての接続を行うには、1 台のコンピューターで「スーパーノード」実行可能ファイルを実行する必要があります。接続を行うために、「エッジ」を実行しているコンピューターは、最初に「スーパーノード」を実行しているコンピューターへの接続を試みます。その後、「エッジ」を実行しているすべてのコンピューター間の情報交換が「スーパーノード」を介して完了します。 "、"スーパーノード" は不要になり、"エッジ" を実行しているコンピューター間の接続
私の質問は、スーパーノードからの関与なしに、コンピューター間で直接接続を行うにはどうすればよいですか? 基本的には、すべてのエッジ ノードにプライベート IP アドレスが割り当てられます。現在、2 台のコンピューターがプライベート IP アドレスを持っている場合、インターネット経由で通信できません。2 つのノードが 2 つの対称 NAT サーバーの背後にある場合、プライベート IP アドレスが割り当てられている場合、どのように通信できますか?
この VPN テクニックを理解するのを手伝ってください。
dns - jmdns定数
私はしばらくJmDNSを使用しています。私は自分のアプリケーションの目的のためにそれを使用することができました. 私にとってはすべてがうまく機能します(「アナウンサー」マシンと「リスニング」マシンがあり、後者のマシンは他のデバイスを見て、それらの情報を発見できます)。
私が JmDNS jar ファイルを操作できたのは事実ですが、このファイルで何が起こっているのかを完全には理解していませんでした。ここで、ネットワーク トラフィックに JmDNS を使用した場合の影響について知りたいと思います。QUERY_WAIT_INTERVAL
ドキュメントを参照しましたが、PROBE_THROTTLE_COUNT
、 など の定数の意味を見つけることができませんでした。
アナウンサー マシンがサービス アナウンスを送信するデフォルトの頻度を知りたいです。
また、次のように説明されている DNS_TTL にも気付きました。
DNS キャッシュに残るのがサービスの Time To Live であることは理解できましたが、「サーバーをパージする」という意味が理解できませんでした。DNS_TTL の有効期限が切れると、リスナーはサービスについてアナウンサーに尋ねなければならないということですか? もしそうなら、なぜアナウンサーにそのサービスを 1 秒 ( ANNOUNCE_WAIT_INTERVAL
= 1000 ミリ秒) ごとにアナウンスさせる必要があるのでしょうか?
私はとても混乱しています。
windows-7 - PnP-XおよびWindows7へのネットワークストレージの自動インストール
LinuxでAvahi(Bonjour)とNetatalk(AFP)を使用して、Mac OS Xにシームレスにネットワークストレージを提供することで(Time Capsuleのように)テストに成功しました。
Windows 7についてもう1つ質問したいと思います。検索したところ、Windows 7はPnP-XとUPnPを使用して、Bonjourのようなゼロ構成エクスペリエンスを提供しています。私が達成したいのは:
- LinuxでSambaを使用して1つのフォルダーを共有する
- PnP-XとUPnPを使用して、この共有フォルダーをNASサービスとして公開します
- Linuxを搭載したLANに接続されたWindows7PCの場合、Linux上のNASサービスを検出します
- Windows 7は自動的にPnPインストールプロセスを開始し、ユーザーの介入なしに新しいディスクボリュームがエクスプローラーに表示されます。この新しいボリュームは、実際にはLinuxのSamba共有フォルダーです。
このシナリオはPnP-Xを使用することで達成できると思いますか?どうすればこれを実行できますか?
よろしくお願いします
java - Android は Bluetooth 経由で Zeroconf/Bonjour をサポートできますか? TCP/IP はどうですか?
iPhone で「_test._tcp.local」などのカスタム サービスを作成すると、Bonjour では、WiFi または Bluetooth を介してこのサービスをシーク/ブロードキャストできます。
Androidでも可能ですか?
jmDNSがあることは知っていますが、私が理解していることから、 BluetoothではなくWiFi /ネットワークを介してのみ機能します。
ありがとう
賞金を提供したSeva Alekseyevによる編集:私は回避策を求めていません(Zeroconf sans BluetoothまたはBluetooth sans Zeroconfなど)。私は本物を求めています。
c++ - Bonjour C ライブラリを使用して、デバイスがネットワークから削除されたことを知る方法
DNSServiceDiscovery C ライブラリ Bonjour を使用してカメラとプリンターを検出しています。Windows 7 と Visual 2010 を使用しています。
カメラとプリンターを検出できます。今、デバイスがネットワークから削除されたときに通知を受け取る方法を考えています。
この機能の実装方法を教えてください。
java - XCode vs Java: ファイルの送受信方法
私の修士論文では、ファイル (画像、PDF、メモなど) を iOS デバイスからテーブルトップで実行されている Java アプリケーションに、またはその逆に送信できるアプリケーションを作成したいと考えています。
私は既に目的の C と Java で bonjour 検出と解決ルーチンを実装していますが、実際のデータを送受信する方法がわかりません。また、受信側で処理しているファイルの種類をどのように知ることができますか?