ssdp协议内容解析视频_固态硬盘的协议

2022-11-07 16:41:38 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

SSDP(Simple Service Discovery Protocol),简单服务发现协议,用于发现局域网里面的设备和服务。

SSDP消息分为设备查询消息、设备通知消息两种,通常情况下,使用更多地是设备查询消息。

1、设备查询消息:

格式例子如下:

M-SEARCH * HTTP/1.1 HOST: 239.255.255.250:1900 MAN: "ssdp:discover" MX: 5 ST: ssdp:all

其中第一行是消息头,固定;HOST对应的是广播地址和端口,239.255.255.250是默认SSDP广播ip地址,1900是默认的SSDP端口;

MAN后面的ssdp:discover为固定,MX为最长等待时间,ST:查询目标,它的值可以是:

upnp:rootdevice 仅搜索网络中的根设备 uuid:device-UUID 查询UUID标识的设备 urn:schemas-upnp-org:device:device-Type:version 查询device-Type字段指定的设备类型,设备类型和版本由UPNP组织定义。 其中,第三种一般可以用来自定义设备,如:ST: urn:schemas-upnp-org:device:Server:1

在设备接收到查询请求并且查询类型(ST字段值)与此设备匹配时,设备必须向多播地址239.255.255.250:1900回应响应消息。一般形如:

代码语言:javascript复制
HTTP/1.1 200 OKCACHE-CONTROL: max-age = seconds until advertisement expiresDATE: when reponse was generatedEXT:LOCATION: URL for UPnP description for root deviceSERVER: OS/Version UPNP/1.0 product/versionST: search targetUSN: advertisement UUID

最常用的设备发现就讲完了,不常用的设备通知和设备发现差别不大,主要是:

http头不同,设备通知的头为

代码语言:javascript复制
NOTIFY * HTTP/1.1
代码语言:javascript复制
无MX,增加:
代码语言:javascript复制
NT	在此消息中,NT头必须为服务的服务类型。
NTS	表示通知消息的子类型,必须为ssdp:alive或者ssdp:byebye
USN	表示不同服务的统一服务名,它提供了一种标识出相同类型服务的能力
代码语言:javascript复制
典型的设备通知消息格式如下:
代码语言:javascript复制
NOTIFY * HTTP/1.1
HOST: 239.255.255.250:1900
代码语言:javascript复制
CACHE-CONTROL: max-age = seconds until advertisement expires
LOCATION: URL for UPnP description for root device
NT: search target
NTS: ssdp:alive
USN: advertisement UUID
代码语言:javascript复制
代码语言:javascript复制

下一章节将会讲述SSDP协议的Android实现,用于Android手机发现局域网里面的设备服务。

代码语言:javascript复制

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/183060.html原文链接:https://javaforall.cn

0 人点赞