1

私はupnpについて何かをプログラミングしていて、何かをクリアしたいと思います:)マルチキャストM-Searchメッセージで検索すると、デバイスは次のようなもので応答する必要があります(完全なメッセージではありません、私はそれを短くしました)

HTTP/1.1 200 OK
CACHE-CONTROL: max-age = seconds until advertisement expires
DATE: when response was generated
EXT:
LOCATION: URL for UPnP description for root device

したがって、場所は、説明を取得できるIPとポートです。今、ユニキャストで特定のデバイスを検索したいと思います。私の質問は、UNICAST 検索メッセージを使用してこのデバイスを検索しようとしているときに、このアドレスを使用できますか? または、デバイスが別のアドレスでユニキャスト msearch メッセージをリッスンしていますか? :) upnp デバイス アーキテクチャの pdf ファイルを読みました

4

1 に答える 1

1

はい、ユニキャストを続行できますし、続行する必要があります。LOCATIONいくつかのIPとポート」だけでなく、デバイスの説明の完全なリソースの場所です。単一のアドレスにマルチキャストを行うことはできません :) 「このデバイスを検索する」必要はもうありません。HTTP GET でその URL を要求するだけです。そして基本的に、特定のサービスの URL をいくつか取得します。

upnp について何かをプログラミング」していて、この種の基本的な質問がある場合は、UPnP 仕様バンドルをダウンロードしてドキュメントUPnP-arch-DeviceArchitectureを読むことをお勧めします。UPnP の検索およびクエリ フェーズがどのように機能するかを、わかりやすい手順で説明します。

OPの明確化に応じて更新:

デバイスの再検出は、(マルチキャストへの) 元の応答から既知の IP へのユニキャスト要求として発生し、デバイスがマルチキャスト メッセージをSEARCH介して値を通知した場合は、標準ポート 1900 または特定のポートのいずれかになります。そのため、デバイスが再検出を必要とし、自身をアナウンスしなかった場合、ポートはデフォルトで 1900 になります。次の 32 ページの UPnP デバイス アーキテクチャ、HOSTヘッダー フィールドの説明も参照してください。NOTIFYSEARCHPORT.UPNP.ORG

ただし、このような再検出は必要ないか、ほとんどないことに注意してください。UPnP デバイスは、ネットワークへの接続時NOTIFYにタイプ のマルチキャスト パケットで自身を通知し、切断時にssdp:updateタイプを通知することが期待さssdp:byebyeれます。さらに、ほとんどのデバイスには、コントロール ポイントが自動的にサブスクライブするイベント変数があり、固定リース時間 (デフォルトでは 30 分) によってサブスクリプションを更新します。したがって、デバイスの突然の消失はいずれにせよ (サブスクリプションの更新の失敗によって) 発見されます。

于 2012-11-27T08:56:37.123 に答える