本示例演示如何在 W55MH32 上将 HTTP Server 与 NetBIOS 功能相结合,通过 NetBIOS 名称解析动态 IP,再用该 IP 发起 HTTP 请求,解决 IP 地址变动带来的访问难题。在 HTTP Server 章节中,我们实现了通过 IP 地址访问 W55MH32 的 web 服务器,然而当启用 DHCP 时 IP 地址会动态变化,无法总是通过固定 IP 访问。
本例程将 HTTP Server 和 NetBIOS 两个应用层协议结合使用。HTTP Server 基于 TCP 80 端口提供 Web 内容服务,NetBIOS 基于 UDP 137 端口提供局域网名称解析服务。两者并行运行在主循环中:NetBIOS 负责将设备名称解析为动态 IP 地址,HTTP Server 负责处理浏览器的 Web 请求。PC 端只需在浏览器中输入 NetBIOS 名称即可访问设备网页,无需关心 IP 地址变化。
两个协议的对比:
协议
端口
传输层
功能
HTTP Server
TCP 80
TCP(面向连接)
提供 Web 页面内容服务
NetBIOS
UDP 137
UDP(无连接广播)
局域网名称解析服务
结合优势
HTTP Server 单独使用时,需知道设备 IP 才能访问。DHCP 启用后 IP 动态变化,每次访问前需查看 IP。结合 NetBIOS 后,PC 端只需在浏览器输入 http://W55MH32/,系统自动完成名称到 IP 的解析,再发起 HTTP 请求,实现"名称即地址"的便捷访问体验。
硬件连接与拓扑
请注意:
PC 和开发板需接入同一路由器(同一网段)。NetBIOS 基于 UDP 广播,广播报文只在同一网段内传播。路由器需开启 DHCP 服务。
W55MH32 HTTP Server example
PHY link
The current Mbtis speed : 100Mbps
The current Duplex Mode : Full-Duplex
====================================================================================================
W55MH32 network configuration : static
MAC : 00:08:DC:00:0E:9A
IP : 192.168.1.33
Subnet Mask : 255.255.255.0
Gateway : 192.168.1.1
DNS : 114.114.114.114
====================================================================================================
Please enter W55MH32/ in your browser to access the W55MH32 HTTP server
> HTTPSocket[0] : CLOSED
> HTTPSocket[0] : OPEN
请注意
测试实例需要 PC 端和 W55MH32 处于同一网段。在 PC 端打开浏览器,地址栏输入 http://W55MH32/ 即可通过 NetBIOS 名称访问设备网页。
串口显示 DHCP 成功获取 IP 后,当 PC 浏览器访问 http://W55MH32/ 时,W55MH32 先响应 NetBIOS 名称查询(name is W55MH32 → send response),PC 端获取 IP 后发起 HTTP 请求,浏览器显示设备网页信息。