ZHCU938C May 2018 – January 2021 CC3100 , CC3100MOD , CC3200 , CC3200MOD
除了默认的 HTTP,用户最多可以注册五个 mDNS 进行广播。无论 NWP 是否处于活动状态,注册都是持久的,因为注册信息持久存储在串行闪存中。分别使用 sl_NetAppMDNSRegisterService() 和 sl_NetAppMDNSUnRegisterService() 来注册和取消注册 mDNS 服务。
以下示例显示了注册过程:
#define SERVICE_NAME "AAA._uart._tcp.local"
#define SERVICE_NAME2 "BBB._http._tcp.local"
void mDNS_Broadcast()
{
int retVal = 0;
// Start mDNS – not required since it’s started by default.
// However, it’s a good practice just to ensure the mDNS is started.In this
// case, -6 is returned.0 will be returned if it was stopped previously.
retVal = sl_NetAppStart(SL_NET_APP_MDNS_ID);
// Unregister first, then register to clean up previous registration
// with the same service name.
sl_NetAppMDNSUnRegisterService(SERVICE_NAME, (unsigned char) strlen(SERVICE_NAME));
retVal = sl_NetAppMDNSRegisterService(SERVICE_NAME,
(unsigned char)strlen(SERVICE_NAME),
"Apple",
(unsigned char)strlen("Apple"),
200,
2000,
0x00000001);
Report("MDNS 1 Registered with NAME: %s & ERROR code: %d\n\r",
SERVICE_NAME,
retVal);
//Second registration with a different name
sl_NetAppMDNSUnRegisterService(SERVICE_NAME2,(unsigned char) strlen(SERVICE_NAME2));
retVal = sl_NetAppMDNSRegisterService(SERVICE_NAME2,
(unsigned char)strlen(SERVICE_NAME2),
"Banana",
(unsigned char)strlen("Banana"),
201,
2000,
0x00000001);
Report("MDNS 2 Registered with NAME: %s & ERROR code: %d\n\r", SERVICE_NAME2, retVal);
}
若要一次取消注册所有 mDNS 服务,请使用以下调用函数:
sl_NetAppMDNSUnRegisterService(0, 0);
只需注册一次特定服务。每次复位后都会保存并广播该服务(如果 mDNS 已启动,且具有 IP 的 STA 或 P2P/AP 正常运行)。