問題タブ [ssdp]
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.
java - SSDP を使用して適切な UDP パケットを受信できない
here から取得した非常に単純な SSDP 機能を Android アプリに実装しようとしています。
私のアプリケーションは、関連する M-SEARCH メッセージを含むいくつかの UDP パケットを問題なくブロードキャスト アドレスに送信します。問題は、UPNP サーバーを実行している他のデバイスから適切な応答を返さなければならないことです。何らかの理由で、Android デバイスから送信したのとまったく同じパケットしか受信していません。
MainActivity.java
実際にUDPパケット送信を行うSSDPSocket.java
SSDPブロードキャスト文字列を構築するためのSSDPSearchMsg.java(おそらく私が経験している問題とは関係ありませんが、念のため)
SSDPConstants.java
また、マニフェストに関連するアクセス許可が含まれていることも確認しました。
エミュレーターではなく、実際のデバイスでアプリをテストしています。
任意の支援をいただければ幸いです。
コメントに応じて編集:
マルチキャスト自体は問題なく動作するはずです。SSDP 機能をテストするために、BubbleUPNP というアプリをダウンロードしました。案の定、wireshark は電話から SSDP プロトコルのブロードキャスト アドレスに送信されたすべてのメッセージを適切にキャプチャします。
そして、応答
ええ、これは間違いなく実装上の問題です。デバイスに問題はありません。
android - Android で、upnp mr 応答を m-search にする方法は?
私はAndroidに取り組んでいます。同じLANでメディアレンダラーを見つけようとしました。m-search を 239.255.255.250:1900 に送信しました。送信したメッセージを次のようにキャプチャしました。
しかし、そこで働いている氏からの応答はありません。
networking - SSDP で NOTIFY が必要なのはなぜですか?
upnp/ssdpプロトコルで使用される NOTIFY および M-SEARCH メッセージの目的の背後にある私の混乱を誰かが解決してくれることを願っています。
私の理解では、デバイスが他の UPNP 対応デバイスに自分自身をアドバタイズしたい場合は NOTIFY メッセージが送信され、デバイスが他の UPNP 対応デバイスについて知りたい場合は M-SEARCH メッセージが送信されます。
したがって、私のデバイスがブロードキャスト アドレス (SSDP,239.255.255.250 の場合) を介して他のデバイスから M-SEARCH メッセージを受信した場合、適切な形式で応答します。
これが私の質問です。そもそもなぜ NOTIFY メッセージが存在するのでしょうか? M-SEARCH を見て要求されたデバイスにデバイス情報を送り返すので、求められない限り NOTIFY でデバイス情報を事前に通知する意味がないように思えます。 NOTIFY が送信された時点では利用できない場合があります。
つまり、M-SEARCH と比較した NOTIFY の正確な目的を、できれば実際の使用例とともに知りたいと思います。
それとも、このプロトコルを完全に誤解しているだけですか?
android - Android スマートフォンやその他のデバイスでのサービス ディスカバリ
私の環境では、Android スマートフォンとその他のデバイスがいくつかあります。他のデバイスは Linux を実行しています。すべてのデバイスは、Wifi 経由でローカル ネットワークに接続されています。ここで、Smartphone がネットワーク内の他のデバイスを認識して検出できるようにするため、何らかのサービス検出を実装する必要があります。他のデバイスでは、ユーザーの操作は必要ありません。その後、2 つのデバイスが互いにペアリングできるようになります。
Android がNetwork Service Discovery (NSD)をサポートしていることを読みました。これは良いことですが、これは Android デバイスでしか機能しないようですよね? 私の場合、他のデバイスは組み込み Linux を実行するカスタム ハードウェアです。また、プログラミング言語も同じではありません。他のデバイスのアプリケーションは、C++ を使用して実装されています。
Simple Service Discovery Protocol (SSDP)についても読みました。これはプラットフォームに依存しない方法で機能するはずですよね?SSDPを使用してこれを実現する方法を簡単に説明できますか?
Service Discovery の実装に SSDP をお勧めしますか? Android および C++ 用の便利なライブラリはありますか?
または、私がやろうとしていることを実現するための他のアプローチを提案できますか?
よろしく
c++ - Linux でのシンプルなサービス検出
ネットワークにある種のサービス ディスカバリを実装しようとしています。特に、Linux を搭載したデバイスを Android アプリケーションで無効にしたいと考えています。私はssdpに出くわしましたが、これは私の仕事に適しているようです。C++ 用の ssdp ライブラリを探していましたが、見つかりませんでした。自分で実装する必要がありますか?もしそうなら、これをどのように行うことができるかについて簡単な概要を教えていただけますか? それとも、ライブラリなしで実行できるUDP経由でNOTIFYメッセージを送信するだけですか!
よろしく
android - Android ssdp alive レシーバー機能の実装方法
ドア 1900 をリッスンし、アライブ メッセージとデバイス IP をキャッチする機能を実装しようとしています。見つかったいくつかのライブラリを使用しようとしましたが、アプリを起動しようとすると、アプリケーションが常にクラッシュします。
これが私の主な機能です
libコードの残りの部分
soap - UPnP POST to Printers データ シンク URI
UPnP プリンターへのデータの投稿に取り組んでいる投稿が他にもいくつかあります。基本的にゼロからコントロール ポイントを作成します (これはまだ POC であり、複数のデバイス タイプに実装する予定なので、最初に基本的な理解を得ようとしています)。これまでのところ、プリンターを検出し、印刷ジョブを要求し、データ シンクの URL を取得して、印刷するコンテンツを投稿することができました。この時点で、単純な xhtml データを使用して POST を試みましたが、次の例外が発生するたびにリクエストがタイムアウトするようです。
ブラウザでURLを叩くと戻ってきますHTTP 405 Method Not Allowed
データが悪いためにサーバーが投稿を無視しているのか、それともこれらの行に沿ってヘッダーまたは何かが欠落しているのか疑問に思っています。
私はすでに upnp.org の Printer Basic サービスのドキュメントと、SOAP 1.1 UPnP プロファイルを調べました。
誰か考えがありますか?
これが私のxhtmlのコピーです:
C# を使用してHttpWebRequest
. これを行うコードは次のとおりです(いくつかのバリエーションがあり、別のものを使用していますWebClient
)
フィドラーからの生の投稿データ