LINUX下 ssdp 实现
ssdp介绍
ssdp(简单发现协议)是一个应用层协议,主要是在局域网中,让别的应用发现自己。通过ssdp协议,也能够让windows网络邻居显示应用。
ssdp实现流程
ssdp设备(相机、打印机):在网络中通过组播定时向外发送notify通知消息,通知查找端自己的存在,并在查找端查询时,向组播组中发送resp消息,在设备下线时向组播中发送bye消息。
ssdp查找者(群控软件、网络邻居):在网络中通过组播来发送search消息,询问局域网中的设备,并且接收设备发送的notify消息和resp消息得到对方的信息,接收bye信息并处理。
ssdp消息类型
saerch:
M-SEARCH * HTTP/1.1
HOST:239.255.255.250:1900
MAN:"ssdp:discover"
ST:upnp:rootdevice //查询的设备类型
MX: 8 //设置设备响应最长等待时间,设备响应在0和这个值之间随机选择响应延迟的值
noti:
NOTIFY * HTTP/1.1
HOST: 239.255.255.250:1900 //协议保留多播地址和端口,必须是239.255.255.250:1900
CACHE-CONTROL: max-age=3600 // max-age指定通知消息存活时间,如果超过此时间间隔,控制点可以认为设备不存在
LOCATION:http://192.168.2.172:80/upnpd