发现之 SSDP 消息格式
SSDP使用RFC 2616 HTTP 1.1头信息的一部分,它使用的是UDP而非TCP并且有自己的处理规则。SSDP消息应遵循RFC 2616标准。由一个起始行和一系列消息头信息。不能包含消息体。如果接收到一个含有消息体的SSDP消息,将会被自动忽略。
消息起始行
每个SSDP消息必须仅有一个起始行。如下之一:NOTIFY* HTTP/1.1\r\n #表示上线通知的消息
M-SEARCH* HTTP/1.1\r\n #表示搜索的消息
HTTP/1.1 200 OK\r\n #表示响应的消息
消息头信息
SSDP消息头信息应遵循RFC 2616.规定每个消息头信息包含一个大小写敏感的位域名并以冒号分割接着是位域值。如: HOST: 239.255.255.250:1900SSDP头信息拓展
工作委员会和设备提供商允许使用额外的SSDP消息头信息的拓展SSDP消息例如: myheader.philips.com: "some value"
myheader.sony.com: "other value"
UUID格式
UDA2.0设备将使用下面定义的格式化的UUID。UUID是一个128bit的数,格式化如下:
UUID=8-4-4-4-12
例如:UUID = 2fac1234-31f8-11b4-a222-08002b34c003
SSDP的处理规则
当接收到一个非格式化的SSDP消息时,接收者会丢弃这个消息。也可以被允许试图解析这个SSDP消息。当开始解析一个SSDP消息头信息时,接收者将解析所有的SSDP定义的头信息并允许跳过其他未定义或它们不识别的头信息。