SSDP,即简单服务发现协议(SSDP,Simple Service Discovery Protocol),是一种应用层协议,是构成通用即插即用(UPnP)技术的核心协议之一。
实现
简单服务发现协议是在HTTPU和HTTPMU的基础上实现的协议。
按照协议的规定,当一个控制点(客户端)接入网络的时候,它可以向一个特定的多播地址的SSDP端口使用M-SEARCH方法发送“ssdp:discover”消息。当设备监听到这个保留的多播地址上由控制点发送的消息的时候,设备会分析控制点请求的服务,如果自身提供了控制点请求的服务,设备将通过单播的方式直接响应控制点的请求。
类似的,当一个设备接入网络的时候,它应当向一个特定的多播地址的SSDP端口使用NOTIFY方法发送“ssdp:alive”消息。控制点根据自己的策略,处理监听到的消息。考虑到设备可能在没有通知的情况下停止服务或者从网络上卸载,“ssdp:alive”消息必须在HTTP协议头CACHE-CONTROL里面指定超时值,设备必须在约定的超时值到达以前重发“ssdp:alive”消息。如果控制点在指定的超时值内没有再次收到设备发送的“ssdp:alive”消息,控制点将认为设备已经失效。
当一个设备计划从网络上卸载的时候,它也应当向一个特定的多播地址的SSDP端口使用NOTIFY方法发送“ssdp:byebye”消息。但是,即使没有发送“ssdp:byebye”消息,控制点也会根据“ssdp:alive”消息指定的超时值,将超时并且没有再次收到的“ssdp:alive”消息对应的设备认为是失效的设备。
在IPv4环境,当需要使用多播方式传送相关消息的时候,SSDP一般使用多播地址239.255.255.250和UDP端口号1900。
根据互联网地址指派机构的指派,SSDP在IPv6环境下使用多播地址FF0x::C,这里的X根据scope的不同可以有不同的取值。
相关推荐
在C语言中实现SSDP协议,通常涉及以下几个关键知识点: 1. **UDP套接字编程**:SSDP基于UDP(User Datagram Protocol),所以你需要熟悉如何在C语言中创建和操作UDP套接字。这包括使用`socket()`函数创建套接字,`...
SSDP协议以太网报文,可以用wireshark软件打开,适用于学习SSDP报文解析,学习各种以太网协议可参考本人其他下载文件
本项目实现了SSDP协议的C语言版本,重点关注了多线程异步接收和发送NOTIFY消息的实现。 在SSDP协议中,主要有两种类型的消息:SEARCH和NOTIFY。SEARCH消息由客户端发送,用于查找网络上的服务或设备;NOTIFY消息由...
改压缩包内容为SSDP的客户端和服务器端js脚本代码,使用方法: 在Linux系统下sudo apt-get install nodejs 之后解压文件进入test目录下 测试Server:node server.js 测试Client:node client.js 可以配合Android ...
The Simple Service Discovery Protocol (SSDP) provides a mechanism where by network clients, with little or no static configuration, can discover network services. SSDP accomplishes this by providing...
这个名为“ssdp”的软件包就是针对Go语言实现的SSDP协议接口。 Go语言,也被称为Golang,是Google开发的一种静态类型的、编译型的、并发型且具有垃圾回收功能的编程语言。Go语言设计的目标是提高开发效率和运行性能...
ESP32 SSDP (Simple Service Discovery Protocol) 是一种基于UDP的网络协议,常用于设备发现和网络服务定位。在IoT(物联网)领域,ESP32芯片因其强大的性能和低功耗特性,常被用于开发智能硬件。在这个"ESP32SSDP-...
节点SSDP 一个异步/ AWAIT执行在S imple小号ervice d iscovery P代表的NodeJS rotocol的。 动机 创建最小,干净和异步的实现。 那里的大多数类似项目都是未维护的,并且基于回调。 请参阅 ,以获取更完整和维护的...
这个“ssdp_java_demo”是一个Java实现的SSDP设备发现的示例,可以帮助开发者理解如何在Java环境中实现SSDP协议,从而在局域网内寻找并连接到支持UPnP的设备。 在Java中实现SSDP,首先需要理解SSDP的基本工作流程。...
2. **SSDP协议**:SSDP协议允许设备通过发送和接收“通知”和“查询”消息来发现网络上的服务。通知是设备向网络广播其存在和提供的服务,而查询则由客户端发送,寻找特定类型的服务。 3. **ACE对SSDP的支持**:ACE...
`upnp_1900.pkt` 文件名暗示这可能是一个UPnP相关的网络数据包捕获文件,可能包含了使用SSDP协议的UDP通信记录。这样的数据包可以使用Wireshark等网络嗅探工具抓取,用于分析或调试SSDP网络通信。通过查看这个文件,...
轻量级的Java存储库,它允许使用概述的简单服务发现协议(SSDP)在局域网上发现硬件设备。 特征: 创建格式化的SSDP搜索请求 将SSDP搜索请求发送到网络上的设备 解析任何收到的响应 安装 用法 执照 该软件已获得MIT...
Android SDK提供了`com.android.upnp.trustallcerts`库,这个库包含了对SSDP协议的支持。开发者可以通过`UpnpService`类来使用SSDP功能,该类提供了搜索设备、订阅设备状态更新以及取消订阅等方法。例如,你可以使用...
SSDP(Simple Service Discovery Protocol,简单服务发现协议)是UPnP框架的一部分,主要用于网络设备和服务的自动发现。在JavaScript和Chrome环境中,SSDP允许开发者在Web应用中探测本地网络中的设备,例如智能电视...
用法 - 客户端 :::javascriptvar SSDP = require('ssdp').SSDP;var client = new SSDP;client.on('notify', function () {console.log('Got a notification.');});client.on('response', function inResponse(msg, r...
总结来说,实现"swift-基于DLNA实现iOS投屏SSDP发现设备及SOAP控制设备"涉及到对SSDP和SOAP协议的理解,以及Swift的网络编程能力。通过发送SSDP请求发现设备,然后利用SOAP进行设备控制,可以在iOS应用中创建一个...
RSSDP是简单服务发现(SSDP)协议的100%.Net实现,它是通用即插即用(UPnP)标准的一部分。 SSDP使您可以发现(本地)网络上的设备和服务。 RSSDP主要用于发布和发现自定义或“基本”设备,因此不能实现完整的...
SSDP,全称Simple Service Discovery Protocol,是一种基于UDP的协议,主要用于在局域网内发现和查找网络设备和服务。它被广泛应用于UPnP(通用即插即用)框架中,使得设备能够自我宣告其存在,并允许其他设备发现和...
适用于Android的简单服务发现协议(SSDP)库 SSDP用作通用即插即用(UPnP)的发现协议。 用例: 发现当前WiFi网络上的所有Sonos(UPnP)扬声器 如何: 通过多播UDP发送M-SEARCH请求 从兼容设备接收单播UDP响应 ...