关于SSDP

简介: SSDP(简单服务发现协议)是应用层协议,是构成UPnP(通用即插即用)技术的核心协议之一。它为网络客户端(network client)提供了一种发现网络服务(network services)的机制,采用基于通知和发现路由的多播方式实现。

SSDP(简单服务发现协议)是应用层协议,是构成UPnP(通用即插即用)技术的核心协议之一。它为网络客户端(network client)提供了一种发现网络服务(network services)的机制,采用基于通知和发现路由的多播方式实现。

SSDP有两种不同的类型:发现请求和存在通知。在本例中用到的只有发现请求(Discovery request 或查询请求)。SSDP客户端向此地址发送HTTP UDP 发现请求,查询某种类型的服务。SSDP服务在此地址上监听服务发现请求。当服务监听到的HTTP UDP 发现请求和它自己提供的服务匹配时,它以单播方式发送HTTP UDP 响应。

关于SSDP的应用

更新中...

ESP8266的实现

以下为基于SSDP协议实现的一个ESP8266的WebServer

#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <ESP8266SSDP.h>

const char* ssid = "<输入您的WIFI名称>";
const char* password = "<WIFI密码>";

ESP8266WebServer HTTP(80);

void setup() {
  Serial.begin(115200);
  Serial.println();
  Serial.println("Starting WiFi...");

  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  if(WiFi.waitForConnectResult() == WL_CONNECTED){

    Serial.printf("Starting HTTP...\n");
    HTTP.on("/index.html", HTTP_GET, [](){
      HTTP.send(200, "text/plain", "Hello World!");
    });
    HTTP.on("/description.xml", HTTP_GET, [](){
      SSDP.schema(HTTP.client());
    });
    HTTP.begin();

    Serial.printf("Starting SSDP...\n");
    SSDP.setSchemaURL("description.xml");
    SSDP.setHTTPPort(80);
    SSDP.setName("Philips hue clone");
    SSDP.setSerialNumber("001788102201");
    SSDP.setURL("index.html");
    SSDP.setModelName("Philips hue bridge 2012");
    SSDP.setModelNumber("929000226503");
    SSDP.setModelURL("http://www.meethue.com");
    SSDP.setManufacturer("Royal Philips Electronics");
    SSDP.setManufacturerURL("http://www.philips.com");
    SSDP.begin();

    Serial.printf("Ready!\n");
  } else {
    Serial.printf("WiFi Failed\n");
    while(1) delay(100);
  }
}

void loop() {
  HTTP.handleClient();
  delay(1);
}

本文还在持续更新中,后续内容还敬请关注

相关文章
|
6月前
|
域名解析 网络协议
【计算机网络】DNS 分别在什么情况下使用 UDP 和 TCP?
【1月更文挑战第10天】【计算机网络】DNS 分别在什么情况下使用 UDP 和 TCP?
|
JSON 负载均衡 前端开发
一文带你详细了解Open API设计规范
一文带你详细了解Open API设计规范
3597 1
|
4月前
|
安全 Linux 网络安全
登录神器:Hydra 保姆级教程
登录神器:Hydra 保姆级教程
|
6月前
|
存储 网络协议 网络安全
RTMP协议详解及Wiresahrk抓包分析(一)
RTMP协议详解及Wiresahrk抓包分析
355 2
|
6月前
|
运维 网络协议 安全
【专栏】30个必备的思科设备巡检命令,涵盖设备基本信息、性能、网络连接、安全及其它重要方面
【4月更文挑战第28天】本文列举了30个必备的思科设备巡检命令,涵盖设备基本信息、性能、网络连接、安全及其它重要方面。这些命令包括`show version`、`show running-config`、`show ip route`、`show access-lists`等,对监控设备状态、排查故障及优化性能至关重要。熟悉并运用这些命令能提升网络工程师的工作效率,确保网络稳定运行。不断学习新命令以适应网络技术发展是网络工程师的必修课。
601 0
|
存储 安全 大数据
数据隐私与安全在大数据时代的挑战与应对
数据隐私与安全在大数据时代的挑战与应对
1018 0
|
存储 负载均衡 NoSQL
“12306” 是如何支撑百万 QPS 的?
上图中描述了用户请求到服务器经历了三层的负载均衡,下边分别简单介绍一下这三种负载均衡:
“12306” 是如何支撑百万 QPS 的?
|
机器学习/深度学习 人工智能 自然语言处理
在 IJCAI 2019 上,阿里不仅贡献了 11 篇论文,还展示了最新的 AI 技术
澳门举行的人工智能顶会 IJCAI 2019 因为正值大会创立 50 周年而备受瞩目。在这场盛会上,国内科技巨头阿里巴巴展示了自己面向文娱和安全两大方向的最新技术。
452 0
在 IJCAI 2019 上,阿里不仅贡献了 11 篇论文,还展示了最新的 AI 技术
|
Web App开发 编解码 人工智能
WebRTC 拥塞控制 | AIMD 码率控制
本文是 WebRTC 拥塞控制 第 4 篇
WebRTC 拥塞控制 | AIMD 码率控制