UPnP协议演示
关键词:UPnPW5500WIZnetW5500EVB即插即用
UPnP网络的基本组件分为服务、设备和控制点三个部分,在本实例中,W5500EVB板是IGD的控制点,它能够控制IGD执行端口映射服务。这样,外网中的PC可
W5500EVB板建立连接。在经过寻址、发现和获得描述后,使用端口映射服务包括两个步骤�� 一是添加端口映射,另一个是删除端口映射��
W5500EVB板UPnP端口映射的过程分为两个步骤:
步骤1:使用DHCP协议自动获取IP;
步骤2:使用SSDP发现设备,
为了能够搜索在相同子网中的IGD,W5500必须使用UDP多播地址发送SSDP M-SEARCH信息;控制点入网后会组播如下的格式数据包:
Host:这里必须使用IANA(InternetAssigned Numbers Authority)为SSDP预留的组播地址��239.255.255.250:1900��
ST:SearchTarger,表示搜索的节点类型,这里要找到IGD设备
Man:必须是“ssdp:discover”��
Mx��1��5之间的一个值,表示最大的等待应答的秒数��
设备收到SSDP M-SEARCH信息后会回复如下格式的数据包��
Cache-control:max-age的数值表明设备将在这段时间后失效,因此,设备应当在失效前,重发这样的消息��
Location:设备描述文件的URL。通过Location信息,我们能够获得IGD的IP地址和端口号��
Usn:Unique Service Name,是一个设备实例的标识符��
下面的伪代码在SSDPProcess()函数中实��
步骤3��:获取IGD服务的描��
利用IGD的IP地址和端口号生成HTTP GET Header,然后将其发送给IGD。当IGD接收到HTTP GET Header后,IGD将会让W5500EVB获知它的描述。描述过程
W5500EVB获知它的Control URL以及eventSubURL URL��
1 M-SEARCH * HTTP/1.1
2 Host:239.255.255.250:1900
3 ST:urn:schemas-upnp-org:device:InternetGatewayDevice:1
4 Man:"ssdp:discover"
5 MX:3
1 HTTP/1.1 200 OK
2 CACHE-CONTROL: max-age=600
3 DATE: Sat, 07 Jan 2006 21:11:02 GMT
4 EXT:
5 LOCATION: http://192.168.1.1:1900/igd.xml
6 SERVER: Wireless N Router WR842N, UPnP/1.0
7 ST: urn:schemas-upnp-org:device:InternetGatewayDevice:1
8 USN: uuid:upnp-InternetGatewayDevice-282cb2e942d6::urn:schemas-upnp-org:device:InternetGatewayDevice:1
01 /*SSDP Header定义 */
02 constchar SSDP[]="\
03 M-SEARCH * HTTP/1.1\
04 Host:239.255.255.250:1900\
05 ST:urn:schemas-upnp-org:device:InternetGatewayDevice:1\
06 Man:\"ssdp:discover\"\
07 MX:3\
08 \
09 ";
10 signedcharSSDPProcess(SOCKET sockfd)//使用sockfd建立UDP完成SSDP流程
11 {
12 //初始化一个UDP socket
13 socket(sockfd,Sn_MR_UDP,PORT_SSDP,0);
14 //发送SSDP搜索��
15 sendto(sockfd,(const uint8*)SSDP,strlen(SSDP);
16 //接收网络中设备回��
17 recvfrom(sockfd,(uint8*)recv_buffer,RECV_BUFFER_SIZE,recv_addr,&recv_port);
18 //完成SSDP流程,关闭socket
19 close(sockfd);
20 //解析SSDP数据��
21 if((ret_value=parseSSDP(recv_buffer))==0)
22 UPnP_Step=1;//收到指定设备数据包,进入下一步骤
23 returnret_value;
24 }
1 GET /igd.xml HTTP/1.1
2 Accept: text/xml, application/xml
3 User-Agent: Mozilla/4.0 (compatible; UPnP/1.0; Windows NT/5.1)
4 Host: 192.168.1.1:1900
5 Connection: Keep-Alive
6 Cache-Control: no-cache
7 Pragma: no-cache
�� �� 开发板 原理�� 参考代�� 常见问题
2024/12/24 19:38
UPnP协议演示_以太网芯片
https://www.w5500.com/code/W5500EVB/UPnP.html
1/4