1e41f4b71Sopenharmony_ci# @ohos.net.mdns (MDNS Management) 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ciMulticast DNS (MDNS) provides functions such as adding, removing, discovering, and resolving local services on a LAN. 4e41f4b71Sopenharmony_ci 5e41f4b71Sopenharmony_ci> **NOTE** 6e41f4b71Sopenharmony_ci> The initial APIs of this module are supported since API version 10. Newly added APIs will be marked with a superscript to indicate their earliest API version. 7e41f4b71Sopenharmony_ci 8e41f4b71Sopenharmony_ci## Modules to Import 9e41f4b71Sopenharmony_ci 10e41f4b71Sopenharmony_ci```ts 11e41f4b71Sopenharmony_ciimport { mdns } from '@kit.NetworkKit'; 12e41f4b71Sopenharmony_ci``` 13e41f4b71Sopenharmony_ci 14e41f4b71Sopenharmony_ci## mdns.addLocalService 15e41f4b71Sopenharmony_ci 16e41f4b71Sopenharmony_ciaddLocalService(context: Context, serviceInfo: LocalServiceInfo, callback: AsyncCallback\<LocalServiceInfo>): void 17e41f4b71Sopenharmony_ci 18e41f4b71Sopenharmony_ciAdds an MDNS service. This API uses an asynchronous callback to return the result. 19e41f4b71Sopenharmony_ci 20e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11. 21e41f4b71Sopenharmony_ci 22e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Communication.NetManager.MDNS 23e41f4b71Sopenharmony_ci 24e41f4b71Sopenharmony_ci**Parameters** 25e41f4b71Sopenharmony_ci 26e41f4b71Sopenharmony_ci| Name | Type | Mandatory| Description | 27e41f4b71Sopenharmony_ci|-------------|----------------------------------|-----------|-------------------------------------------------| 28e41f4b71Sopenharmony_ci| context | Context | Yes | Application context.<br>For details about the application context of the FA model, see [Context](../apis-ability-kit/js-apis-inner-app-context.md).<br>For the application context of the stage model, see [Context](../apis-ability-kit/js-apis-app-ability-uiAbility.md).| 29e41f4b71Sopenharmony_ci| serviceInfo | [LocalServiceInfo](#localserviceinfo) | Yes | MDNS service information. | 30e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[LocalServiceInfo](#localserviceinfo)> | Yes | Callback used to return the result. If the operation is successful, **error** is **undefined** and **data** is the MDNS service information. | 31e41f4b71Sopenharmony_ci 32e41f4b71Sopenharmony_ci**Error codes** 33e41f4b71Sopenharmony_ci 34e41f4b71Sopenharmony_ci| ID | Error Message| 35e41f4b71Sopenharmony_ci|---------|---| 36e41f4b71Sopenharmony_ci| 401 | Parameter error. | 37e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service. | 38e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 39e41f4b71Sopenharmony_ci| 2204003 | Callback duplicated. | 40e41f4b71Sopenharmony_ci| 2204008 | Failed to delete the service instance. | 41e41f4b71Sopenharmony_ci| 2204010 | Failed to send the message. | 42e41f4b71Sopenharmony_ci 43e41f4b71Sopenharmony_ci> **NOTE** 44e41f4b71Sopenharmony_ci> For details about the error codes, see [MDNS Error Codes](errorcode-net-mdns.md). 45e41f4b71Sopenharmony_ci 46e41f4b71Sopenharmony_ci**Example** 47e41f4b71Sopenharmony_ci 48e41f4b71Sopenharmony_ciStage model: 49e41f4b71Sopenharmony_ci 50e41f4b71Sopenharmony_ci```ts 51e41f4b71Sopenharmony_ciimport { mdns } from '@kit.NetworkKit'; 52e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 53e41f4b71Sopenharmony_ci 54e41f4b71Sopenharmony_ci// Obtain the context. 55e41f4b71Sopenharmony_cilet context = getContext(this) as Context; 56e41f4b71Sopenharmony_ci 57e41f4b71Sopenharmony_cilet localServiceInfo: mdns.LocalServiceInfo = { 58e41f4b71Sopenharmony_ci serviceType: "_print._tcp", 59e41f4b71Sopenharmony_ci serviceName: "servicename", 60e41f4b71Sopenharmony_ci port: 5555, 61e41f4b71Sopenharmony_ci host: { 62e41f4b71Sopenharmony_ci address: "10.14.**.***", 63e41f4b71Sopenharmony_ci }, 64e41f4b71Sopenharmony_ci serviceAttribute: [{key: "111", value: [1]}] 65e41f4b71Sopenharmony_ci} 66e41f4b71Sopenharmony_ci 67e41f4b71Sopenharmony_cimdns.addLocalService(context, localServiceInfo, (error:BusinessError, data:mdns.LocalServiceInfo) => { 68e41f4b71Sopenharmony_ci console.log(JSON.stringify(error)); 69e41f4b71Sopenharmony_ci console.log(JSON.stringify(data)); 70e41f4b71Sopenharmony_ci}); 71e41f4b71Sopenharmony_ci``` 72e41f4b71Sopenharmony_ci 73e41f4b71Sopenharmony_ci## mdns.addLocalService 74e41f4b71Sopenharmony_ci 75e41f4b71Sopenharmony_ciaddLocalService(context: Context, serviceInfo: LocalServiceInfo): Promise\<LocalServiceInfo> 76e41f4b71Sopenharmony_ci 77e41f4b71Sopenharmony_ciAdds an MDNS service. This API uses a promise to return the result. 78e41f4b71Sopenharmony_ci 79e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11. 80e41f4b71Sopenharmony_ci 81e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Communication.NetManager.MDNS 82e41f4b71Sopenharmony_ci 83e41f4b71Sopenharmony_ci**Parameters** 84e41f4b71Sopenharmony_ci 85e41f4b71Sopenharmony_ci| Name | Type | Mandatory| Description | 86e41f4b71Sopenharmony_ci|-------------|----------------------------------|-----------|-------------------------------------------------| 87e41f4b71Sopenharmony_ci| context | Context | Yes | Application context.<br>For details about the application context of the FA model, see [Context](../apis-ability-kit/js-apis-inner-app-context.md).<br>For the application context of the stage model, see [Context](../apis-ability-kit/js-apis-app-ability-uiAbility.md).| 88e41f4b71Sopenharmony_ci| serviceInfo | [LocalServiceInfo](#localserviceinfo) | Yes | MDNS service information. | 89e41f4b71Sopenharmony_ci 90e41f4b71Sopenharmony_ci**Return value** 91e41f4b71Sopenharmony_ci 92e41f4b71Sopenharmony_ci| Type | Description | 93e41f4b71Sopenharmony_ci| --------------------------------- | ------------------------------------- | 94e41f4b71Sopenharmony_ci| Promise\<[LocalServiceInfo](#localserviceinfo)> | Promise used to return the result.| 95e41f4b71Sopenharmony_ci 96e41f4b71Sopenharmony_ci**Error codes** 97e41f4b71Sopenharmony_ci 98e41f4b71Sopenharmony_ci| ID | Error Message| 99e41f4b71Sopenharmony_ci|---------|---| 100e41f4b71Sopenharmony_ci| 401 | Parameter error. | 101e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service. | 102e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 103e41f4b71Sopenharmony_ci| 2204003 | Callback duplicated. | 104e41f4b71Sopenharmony_ci| 2204008 | Failed to delete the service instance. | 105e41f4b71Sopenharmony_ci| 2204010 | Failed to send the message. | 106e41f4b71Sopenharmony_ci 107e41f4b71Sopenharmony_ci> **NOTE** 108e41f4b71Sopenharmony_ci> For details about the error codes, see [MDNS Error Codes](errorcode-net-mdns.md). 109e41f4b71Sopenharmony_ci 110e41f4b71Sopenharmony_ci**Example** 111e41f4b71Sopenharmony_ci 112e41f4b71Sopenharmony_ciStage model: 113e41f4b71Sopenharmony_ci 114e41f4b71Sopenharmony_ci```ts 115e41f4b71Sopenharmony_ciimport { mdns } from '@kit.NetworkKit'; 116e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 117e41f4b71Sopenharmony_ci 118e41f4b71Sopenharmony_ci// Obtain the context. 119e41f4b71Sopenharmony_cilet context = getContext(this) as Context; 120e41f4b71Sopenharmony_ci 121e41f4b71Sopenharmony_cilet localServiceInfo: mdns.LocalServiceInfo = { 122e41f4b71Sopenharmony_ci serviceType: "_print._tcp", 123e41f4b71Sopenharmony_ci serviceName: "servicename", 124e41f4b71Sopenharmony_ci port: 5555, 125e41f4b71Sopenharmony_ci host: { 126e41f4b71Sopenharmony_ci address: "10.14.**.***", 127e41f4b71Sopenharmony_ci }, 128e41f4b71Sopenharmony_ci serviceAttribute: [{key: "111", value: [1]}] 129e41f4b71Sopenharmony_ci} 130e41f4b71Sopenharmony_ci 131e41f4b71Sopenharmony_cimdns.addLocalService(context, localServiceInfo).then((data: mdns.LocalServiceInfo) => { 132e41f4b71Sopenharmony_ci console.log(JSON.stringify(data)); 133e41f4b71Sopenharmony_ci}); 134e41f4b71Sopenharmony_ci``` 135e41f4b71Sopenharmony_ci 136e41f4b71Sopenharmony_ci## mdns.removeLocalService 137e41f4b71Sopenharmony_ci 138e41f4b71Sopenharmony_ciremoveLocalService(context: Context, serviceInfo: LocalServiceInfo, callback: AsyncCallback\<LocalServiceInfo>): void 139e41f4b71Sopenharmony_ci 140e41f4b71Sopenharmony_ciRemoves an MDNS service. This API uses an asynchronous callback to return the result. 141e41f4b71Sopenharmony_ci 142e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11. 143e41f4b71Sopenharmony_ci 144e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Communication.NetManager.MDNS 145e41f4b71Sopenharmony_ci 146e41f4b71Sopenharmony_ci**Parameters** 147e41f4b71Sopenharmony_ci 148e41f4b71Sopenharmony_ci| Name | Type | Mandatory| Description | 149e41f4b71Sopenharmony_ci|-------------|----------------------------------|-----------|-------------------------------------------------| 150e41f4b71Sopenharmony_ci| context | Context | Yes | Application context.<br>For details about the application context of the FA model, see [Context](../apis-ability-kit/js-apis-inner-app-context.md).<br>For the application context of the stage model, see [Context](../apis-ability-kit/js-apis-app-ability-uiAbility.md).| 151e41f4b71Sopenharmony_ci| serviceInfo | [LocalServiceInfo](#localserviceinfo) | Yes | MDNS service information. | 152e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[LocalServiceInfo](#localserviceinfo)> | Yes | Callback used to return the result. If the operation is successful, **error** is **undefined** and **data** is the MDNS service information. | 153e41f4b71Sopenharmony_ci 154e41f4b71Sopenharmony_ci**Error codes** 155e41f4b71Sopenharmony_ci 156e41f4b71Sopenharmony_ci| ID | Error Message| 157e41f4b71Sopenharmony_ci|---------|---| 158e41f4b71Sopenharmony_ci| 401 | Parameter error. | 159e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service. | 160e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 161e41f4b71Sopenharmony_ci| 2204002 | Callback not found. | 162e41f4b71Sopenharmony_ci| 2204008 | Failed to delete the service instance. | 163e41f4b71Sopenharmony_ci| 2204010 | Failed to send the message. | 164e41f4b71Sopenharmony_ci 165e41f4b71Sopenharmony_ci> **NOTE** 166e41f4b71Sopenharmony_ci> For details about the error codes, see [MDNS Error Codes](errorcode-net-mdns.md). 167e41f4b71Sopenharmony_ci 168e41f4b71Sopenharmony_ci**Example** 169e41f4b71Sopenharmony_ci 170e41f4b71Sopenharmony_ciStage model: 171e41f4b71Sopenharmony_ci 172e41f4b71Sopenharmony_ci```ts 173e41f4b71Sopenharmony_ciimport { mdns } from '@kit.NetworkKit'; 174e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 175e41f4b71Sopenharmony_ci 176e41f4b71Sopenharmony_ci// Obtain the context. 177e41f4b71Sopenharmony_cilet context = getContext(this) as Context; 178e41f4b71Sopenharmony_ci 179e41f4b71Sopenharmony_cilet localServiceInfo: mdns.LocalServiceInfo = { 180e41f4b71Sopenharmony_ci serviceType: "_print._tcp", 181e41f4b71Sopenharmony_ci serviceName: "servicename", 182e41f4b71Sopenharmony_ci port: 5555, 183e41f4b71Sopenharmony_ci host: { 184e41f4b71Sopenharmony_ci address: "10.14.**.***", 185e41f4b71Sopenharmony_ci }, 186e41f4b71Sopenharmony_ci serviceAttribute: [{key: "111", value: [1]}] 187e41f4b71Sopenharmony_ci} 188e41f4b71Sopenharmony_ci 189e41f4b71Sopenharmony_cimdns.removeLocalService(context, localServiceInfo, (error: BusinessError, data: mdns.LocalServiceInfo) => { 190e41f4b71Sopenharmony_ci console.log(JSON.stringify(error)); 191e41f4b71Sopenharmony_ci console.log(JSON.stringify(data)); 192e41f4b71Sopenharmony_ci}); 193e41f4b71Sopenharmony_ci``` 194e41f4b71Sopenharmony_ci 195e41f4b71Sopenharmony_ci## mdns.removeLocalService 196e41f4b71Sopenharmony_ci 197e41f4b71Sopenharmony_ciremoveLocalService(context: Context, serviceInfo: LocalServiceInfo): Promise\<LocalServiceInfo> 198e41f4b71Sopenharmony_ci 199e41f4b71Sopenharmony_ciRemoves an MDNS service. This API uses a promise to return the result. 200e41f4b71Sopenharmony_ci 201e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11. 202e41f4b71Sopenharmony_ci 203e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Communication.NetManager.MDNS 204e41f4b71Sopenharmony_ci 205e41f4b71Sopenharmony_ci**Parameters** 206e41f4b71Sopenharmony_ci 207e41f4b71Sopenharmony_ci| Name | Type | Mandatory| Description | 208e41f4b71Sopenharmony_ci|-------------|----------------------------------|-----------|-------------------------------------------------| 209e41f4b71Sopenharmony_ci| context | Context | Yes | Application context.<br>For details about the application context of the FA model, see [Context](../apis-ability-kit/js-apis-inner-app-context.md).<br>For the application context of the stage model, see [Context](../apis-ability-kit/js-apis-app-ability-uiAbility.md).| 210e41f4b71Sopenharmony_ci| serviceInfo | [LocalServiceInfo](#localserviceinfo) | Yes | MDNS service information. | 211e41f4b71Sopenharmony_ci 212e41f4b71Sopenharmony_ci**Return value** 213e41f4b71Sopenharmony_ci 214e41f4b71Sopenharmony_ci| Type | Description | 215e41f4b71Sopenharmony_ci| --------------------------------- | ------------------------------------- | 216e41f4b71Sopenharmony_ci| Promise\<[LocalServiceInfo](#localserviceinfo)> | Promise used to return the result.| 217e41f4b71Sopenharmony_ci 218e41f4b71Sopenharmony_ci**Error codes** 219e41f4b71Sopenharmony_ci 220e41f4b71Sopenharmony_ci| ID | Error Message| 221e41f4b71Sopenharmony_ci|---------|---| 222e41f4b71Sopenharmony_ci| 401 | Parameter error. | 223e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service. | 224e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 225e41f4b71Sopenharmony_ci| 2204002 | Callback not found. | 226e41f4b71Sopenharmony_ci| 2204008 | Failed to delete the service instance. | 227e41f4b71Sopenharmony_ci| 2204010 | Failed to send the message. | 228e41f4b71Sopenharmony_ci 229e41f4b71Sopenharmony_ci> **NOTE** 230e41f4b71Sopenharmony_ci> For details about the error codes, see [MDNS Error Codes](errorcode-net-mdns.md). 231e41f4b71Sopenharmony_ci 232e41f4b71Sopenharmony_ci**Example** 233e41f4b71Sopenharmony_ci 234e41f4b71Sopenharmony_ciStage model: 235e41f4b71Sopenharmony_ci 236e41f4b71Sopenharmony_ci```ts 237e41f4b71Sopenharmony_ciimport { mdns } from '@kit.NetworkKit'; 238e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 239e41f4b71Sopenharmony_ci 240e41f4b71Sopenharmony_cilet context = getContext(this) as Context; 241e41f4b71Sopenharmony_ci 242e41f4b71Sopenharmony_cilet localServiceInfo: mdns.LocalServiceInfo = { 243e41f4b71Sopenharmony_ci serviceType: "_print._tcp", 244e41f4b71Sopenharmony_ci serviceName: "servicename", 245e41f4b71Sopenharmony_ci port: 5555, 246e41f4b71Sopenharmony_ci host: { 247e41f4b71Sopenharmony_ci address: "10.14.**.***", 248e41f4b71Sopenharmony_ci }, 249e41f4b71Sopenharmony_ci serviceAttribute: [{key: "111", value: [1]}] 250e41f4b71Sopenharmony_ci} 251e41f4b71Sopenharmony_ci 252e41f4b71Sopenharmony_cimdns.removeLocalService(context, localServiceInfo).then((data: mdns.LocalServiceInfo) => { 253e41f4b71Sopenharmony_ci console.log(JSON.stringify(data)); 254e41f4b71Sopenharmony_ci}); 255e41f4b71Sopenharmony_ci``` 256e41f4b71Sopenharmony_ci 257e41f4b71Sopenharmony_ci## mdns.createDiscoveryService 258e41f4b71Sopenharmony_ci 259e41f4b71Sopenharmony_cicreateDiscoveryService(context: Context, serviceType: string): DiscoveryService 260e41f4b71Sopenharmony_ci 261e41f4b71Sopenharmony_ciCreates a **DiscoveryService** object, which is used to discover MDNS services of the specified type. 262e41f4b71Sopenharmony_ci 263e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11. 264e41f4b71Sopenharmony_ci 265e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Communication.NetManager.MDNS 266e41f4b71Sopenharmony_ci 267e41f4b71Sopenharmony_ci**Parameters** 268e41f4b71Sopenharmony_ci 269e41f4b71Sopenharmony_ci| Name | Type | Mandatory| Description | 270e41f4b71Sopenharmony_ci|-------------|---------|-----------| ------------------------------------------------------------ | 271e41f4b71Sopenharmony_ci| context | Context | Yes | Application context.<br>For details about the application context of the FA model, see [Context](../apis-ability-kit/js-apis-inner-app-context.md).<br>For the application context of the stage model, see [Context](../apis-ability-kit/js-apis-app-ability-uiAbility.md).| 272e41f4b71Sopenharmony_ci| serviceType | string | Yes | Type of the MDNS services to be discovered.| 273e41f4b71Sopenharmony_ci 274e41f4b71Sopenharmony_ci**Return value** 275e41f4b71Sopenharmony_ci 276e41f4b71Sopenharmony_ci| Type | Description | 277e41f4b71Sopenharmony_ci| ----------------------------- |---------------------------------| 278e41f4b71Sopenharmony_ci| DiscoveryService | **DiscoveryService** object used to discover MDNS services based on the specified **serviceType** and **Context**.| 279e41f4b71Sopenharmony_ci 280e41f4b71Sopenharmony_ci**Error codes** 281e41f4b71Sopenharmony_ci 282e41f4b71Sopenharmony_ci| ID | Error Message| 283e41f4b71Sopenharmony_ci|---------|---| 284e41f4b71Sopenharmony_ci| 401 | Parameter error. | 285e41f4b71Sopenharmony_ci 286e41f4b71Sopenharmony_ci**Example** 287e41f4b71Sopenharmony_ci 288e41f4b71Sopenharmony_ciStage model: 289e41f4b71Sopenharmony_ci 290e41f4b71Sopenharmony_ci```ts 291e41f4b71Sopenharmony_ciimport { mdns } from '@kit.NetworkKit'; 292e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 293e41f4b71Sopenharmony_ci 294e41f4b71Sopenharmony_ci// Obtain the context. 295e41f4b71Sopenharmony_cilet context = getContext(this) as Context; 296e41f4b71Sopenharmony_ci 297e41f4b71Sopenharmony_cilet serviceType = "_print._tcp"; 298e41f4b71Sopenharmony_cilet discoveryService : Object = mdns.createDiscoveryService(context, serviceType); 299e41f4b71Sopenharmony_ci``` 300e41f4b71Sopenharmony_ci 301e41f4b71Sopenharmony_ci## mdns.resolveLocalService 302e41f4b71Sopenharmony_ci 303e41f4b71Sopenharmony_ciresolveLocalService(context: Context, serviceInfo: LocalServiceInfo, callback: AsyncCallback\<LocalServiceInfo>): void 304e41f4b71Sopenharmony_ci 305e41f4b71Sopenharmony_ciResolves an MDNS service. This API uses an asynchronous callback to return the result. 306e41f4b71Sopenharmony_ci 307e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11. 308e41f4b71Sopenharmony_ci 309e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Communication.NetManager.MDNS 310e41f4b71Sopenharmony_ci 311e41f4b71Sopenharmony_ci**Parameters** 312e41f4b71Sopenharmony_ci 313e41f4b71Sopenharmony_ci| Name | Type | Mandatory| Description | 314e41f4b71Sopenharmony_ci|-------------|----------------------------------|-----------|-------------------------------------------------------------| 315e41f4b71Sopenharmony_ci| context | Context | Yes | Application context.<br>For details about the application context of the FA model, see [Context](../apis-ability-kit/js-apis-inner-app-context.md).<br>For the application context of the stage model, see [Context](../apis-ability-kit/js-apis-app-ability-uiAbility.md).| 316e41f4b71Sopenharmony_ci| serviceInfo | [LocalServiceInfo](#localserviceinfo) | Yes | MDNS service information. | 317e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[LocalServiceInfo](#localserviceinfo)> | Yes | Callback used to return the result. If the operation is successful, **error** is **undefined** and **data** is the MDNS service information. | 318e41f4b71Sopenharmony_ci 319e41f4b71Sopenharmony_ci**Error codes** 320e41f4b71Sopenharmony_ci 321e41f4b71Sopenharmony_ci| ID | Error Message| 322e41f4b71Sopenharmony_ci|---------|----------------------------------------------| 323e41f4b71Sopenharmony_ci| 401 | Parameter error. | 324e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service. | 325e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 326e41f4b71Sopenharmony_ci| 2204003 | Callback duplicated. | 327e41f4b71Sopenharmony_ci| 2204006 | Request timeout. | 328e41f4b71Sopenharmony_ci| 2204010 | Failed to send the message. | 329e41f4b71Sopenharmony_ci 330e41f4b71Sopenharmony_ci> **NOTE** 331e41f4b71Sopenharmony_ci> For details about the error codes, see [MDNS Error Codes](errorcode-net-mdns.md). 332e41f4b71Sopenharmony_ci 333e41f4b71Sopenharmony_ci**Example** 334e41f4b71Sopenharmony_ci 335e41f4b71Sopenharmony_ciStage model: 336e41f4b71Sopenharmony_ci 337e41f4b71Sopenharmony_ci```ts 338e41f4b71Sopenharmony_ciimport { mdns } from '@kit.NetworkKit'; 339e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 340e41f4b71Sopenharmony_ci 341e41f4b71Sopenharmony_ci// Obtain the context. 342e41f4b71Sopenharmony_cilet context = getContext(this) as Context; 343e41f4b71Sopenharmony_ci 344e41f4b71Sopenharmony_cilet localServiceInfo: mdns.LocalServiceInfo = { 345e41f4b71Sopenharmony_ci serviceType: "_print._tcp", 346e41f4b71Sopenharmony_ci serviceName: "servicename", 347e41f4b71Sopenharmony_ci port: 5555, 348e41f4b71Sopenharmony_ci host: { 349e41f4b71Sopenharmony_ci address: "10.14.**.***", 350e41f4b71Sopenharmony_ci }, 351e41f4b71Sopenharmony_ci serviceAttribute: [{key: "111", value: [1]}] 352e41f4b71Sopenharmony_ci} 353e41f4b71Sopenharmony_ci 354e41f4b71Sopenharmony_cimdns.resolveLocalService(context, localServiceInfo, (error: BusinessError, data: mdns.LocalServiceInfo) => { 355e41f4b71Sopenharmony_ci console.log(JSON.stringify(error)); 356e41f4b71Sopenharmony_ci console.log(JSON.stringify(data)); 357e41f4b71Sopenharmony_ci}); 358e41f4b71Sopenharmony_ci``` 359e41f4b71Sopenharmony_ci 360e41f4b71Sopenharmony_ci## mdns.resolveLocalService 361e41f4b71Sopenharmony_ci 362e41f4b71Sopenharmony_ciresolveLocalService(context: Context, serviceInfo: LocalServiceInfo): Promise\<LocalServiceInfo> 363e41f4b71Sopenharmony_ci 364e41f4b71Sopenharmony_ciResolves an MDNS service. This API uses a promise to return the result. 365e41f4b71Sopenharmony_ci 366e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11. 367e41f4b71Sopenharmony_ci 368e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Communication.NetManager.MDNS 369e41f4b71Sopenharmony_ci 370e41f4b71Sopenharmony_ci**Parameters** 371e41f4b71Sopenharmony_ci 372e41f4b71Sopenharmony_ci| Name | Type | Mandatory| Description | 373e41f4b71Sopenharmony_ci|-------------|--------------|-----------|-----------------------------------------------------| 374e41f4b71Sopenharmony_ci| context | Context | Yes | Application context.<br>For details about the application context of the FA model, see [Context](../apis-ability-kit/js-apis-inner-app-context.md).<br>For the application context of the stage model, see [Context](../apis-ability-kit/js-apis-app-ability-uiAbility.md).| 375e41f4b71Sopenharmony_ci| serviceInfo | [LocalServiceInfo](#localserviceinfo) | Yes | MDNS service information. | 376e41f4b71Sopenharmony_ci 377e41f4b71Sopenharmony_ci**Return value** 378e41f4b71Sopenharmony_ci 379e41f4b71Sopenharmony_ci| Type | Description | 380e41f4b71Sopenharmony_ci|----------------------------| ------------------------------------- | 381e41f4b71Sopenharmony_ci| Promise\<[LocalServiceInfo](#localserviceinfo)> | Promise used to return the result.| 382e41f4b71Sopenharmony_ci 383e41f4b71Sopenharmony_ci**Error codes** 384e41f4b71Sopenharmony_ci 385e41f4b71Sopenharmony_ci| ID | Error Message| 386e41f4b71Sopenharmony_ci|---------|----------------------------------------------| 387e41f4b71Sopenharmony_ci| 401 | Parameter error. | 388e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service. | 389e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 390e41f4b71Sopenharmony_ci| 2204003 | Callback duplicated. | 391e41f4b71Sopenharmony_ci| 2204006 | Request timeout. | 392e41f4b71Sopenharmony_ci| 2204010 | Failed to send the message. | 393e41f4b71Sopenharmony_ci 394e41f4b71Sopenharmony_ci> **NOTE** 395e41f4b71Sopenharmony_ci> For details about the error codes, see [MDNS Error Codes](errorcode-net-mdns.md). 396e41f4b71Sopenharmony_ci 397e41f4b71Sopenharmony_ci**Example** 398e41f4b71Sopenharmony_ci 399e41f4b71Sopenharmony_ciStage model: 400e41f4b71Sopenharmony_ci 401e41f4b71Sopenharmony_ci```ts 402e41f4b71Sopenharmony_ciimport { mdns } from '@kit.NetworkKit'; 403e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 404e41f4b71Sopenharmony_ci 405e41f4b71Sopenharmony_ci// Obtain the context. 406e41f4b71Sopenharmony_cilet context = getContext(this) as Context; 407e41f4b71Sopenharmony_ci 408e41f4b71Sopenharmony_cilet localServiceInfo: mdns.LocalServiceInfo = { 409e41f4b71Sopenharmony_ci serviceType: "_print._tcp", 410e41f4b71Sopenharmony_ci serviceName: "servicename", 411e41f4b71Sopenharmony_ci port: 5555, 412e41f4b71Sopenharmony_ci host: { 413e41f4b71Sopenharmony_ci address: "10.14.**.***", 414e41f4b71Sopenharmony_ci }, 415e41f4b71Sopenharmony_ci serviceAttribute: [{key: "111", value: [1]}] 416e41f4b71Sopenharmony_ci} 417e41f4b71Sopenharmony_ci 418e41f4b71Sopenharmony_cimdns.resolveLocalService(context, localServiceInfo).then((data: mdns.LocalServiceInfo) => { 419e41f4b71Sopenharmony_ci console.log(JSON.stringify(data)); 420e41f4b71Sopenharmony_ci}); 421e41f4b71Sopenharmony_ci``` 422e41f4b71Sopenharmony_ci## DiscoveryService 423e41f4b71Sopenharmony_ci 424e41f4b71Sopenharmony_ciDefines a **DiscoveryService** object for discovering MDNS services of the specified type. 425e41f4b71Sopenharmony_ci 426e41f4b71Sopenharmony_ci### startSearchingMDNS 427e41f4b71Sopenharmony_ci 428e41f4b71Sopenharmony_cistartSearchingMDNS(): void 429e41f4b71Sopenharmony_ci 430e41f4b71Sopenharmony_ciSearches for MDNS services on the LAN. 431e41f4b71Sopenharmony_ci 432e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11. 433e41f4b71Sopenharmony_ci 434e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Communication.NetManager.MDNS 435e41f4b71Sopenharmony_ci 436e41f4b71Sopenharmony_ci**Example** 437e41f4b71Sopenharmony_ci 438e41f4b71Sopenharmony_ciStage model: 439e41f4b71Sopenharmony_ci 440e41f4b71Sopenharmony_ci```ts 441e41f4b71Sopenharmony_ciimport { mdns } from '@kit.NetworkKit'; 442e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 443e41f4b71Sopenharmony_ci 444e41f4b71Sopenharmony_ci// Obtain the context. 445e41f4b71Sopenharmony_cilet context = getContext(this) as Context; 446e41f4b71Sopenharmony_cilet serviceType = "_print._tcp"; 447e41f4b71Sopenharmony_cilet discoveryService = mdns.createDiscoveryService(context, serviceType); 448e41f4b71Sopenharmony_cidiscoveryService.startSearchingMDNS(); 449e41f4b71Sopenharmony_ci``` 450e41f4b71Sopenharmony_ci 451e41f4b71Sopenharmony_ci### stopSearchingMDNS 452e41f4b71Sopenharmony_ci 453e41f4b71Sopenharmony_cistopSearchingMDNS(): void 454e41f4b71Sopenharmony_ci 455e41f4b71Sopenharmony_ciStops searching for MDNS services on the LAN. 456e41f4b71Sopenharmony_ci 457e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11. 458e41f4b71Sopenharmony_ci 459e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Communication.NetManager.MDNS 460e41f4b71Sopenharmony_ci 461e41f4b71Sopenharmony_ci**Example** 462e41f4b71Sopenharmony_ci 463e41f4b71Sopenharmony_ciStage model: 464e41f4b71Sopenharmony_ci 465e41f4b71Sopenharmony_ci```ts 466e41f4b71Sopenharmony_ciimport { mdns } from '@kit.NetworkKit'; 467e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 468e41f4b71Sopenharmony_ci 469e41f4b71Sopenharmony_ci// Obtain the context. 470e41f4b71Sopenharmony_cilet context = getContext(this) as Context; 471e41f4b71Sopenharmony_cilet serviceType = "_print._tcp"; 472e41f4b71Sopenharmony_cilet discoveryService = mdns.createDiscoveryService(context, serviceType); 473e41f4b71Sopenharmony_cidiscoveryService.stopSearchingMDNS(); 474e41f4b71Sopenharmony_ci``` 475e41f4b71Sopenharmony_ci 476e41f4b71Sopenharmony_ci### on('discoveryStart') 477e41f4b71Sopenharmony_ci 478e41f4b71Sopenharmony_cion(type: 'discoveryStart', callback: Callback\<DiscoveryEventInfo\>): void 479e41f4b71Sopenharmony_ci 480e41f4b71Sopenharmony_ciEnables listening for **discoveryStart** events. 481e41f4b71Sopenharmony_ci 482e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11. 483e41f4b71Sopenharmony_ci 484e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Communication.NetManager.MDNS 485e41f4b71Sopenharmony_ci 486e41f4b71Sopenharmony_ci**Parameters** 487e41f4b71Sopenharmony_ci 488e41f4b71Sopenharmony_ci| Name | Type | Mandatory| Description | 489e41f4b71Sopenharmony_ci|-------------|---------------------------------|------|--------------------------------------------------------| 490e41f4b71Sopenharmony_ci| type | string | Yes | Event type. This field has a fixed value of **discoveryStart**.<br>**discoveryStart**: event of starting discovery of MDNS services on the LAN.| 491e41f4b71Sopenharmony_ci| callback | Callback\<DiscoveryEventInfo\> | Yes | Callback used to return the MDNS service and error information. | 492e41f4b71Sopenharmony_ci 493e41f4b71Sopenharmony_ci**Example** 494e41f4b71Sopenharmony_ci 495e41f4b71Sopenharmony_ci```ts 496e41f4b71Sopenharmony_ciimport { mdns } from '@kit.NetworkKit'; 497e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 498e41f4b71Sopenharmony_ci 499e41f4b71Sopenharmony_ci// See mdns.createDiscoveryService. 500e41f4b71Sopenharmony_cilet context = getContext(this) as Context; 501e41f4b71Sopenharmony_cilet serviceType = "_print._tcp"; 502e41f4b71Sopenharmony_cilet discoveryService = mdns.createDiscoveryService(context, serviceType); 503e41f4b71Sopenharmony_cidiscoveryService.startSearchingMDNS(); 504e41f4b71Sopenharmony_ci 505e41f4b71Sopenharmony_cidiscoveryService.on('discoveryStart', (data: mdns.DiscoveryEventInfo) => { 506e41f4b71Sopenharmony_ci console.log(JSON.stringify(data)); 507e41f4b71Sopenharmony_ci}); 508e41f4b71Sopenharmony_ci 509e41f4b71Sopenharmony_cidiscoveryService.stopSearchingMDNS(); 510e41f4b71Sopenharmony_ci``` 511e41f4b71Sopenharmony_ci 512e41f4b71Sopenharmony_ci### off('discoveryStart') 513e41f4b71Sopenharmony_ci 514e41f4b71Sopenharmony_cioff(type: 'discoveryStart', callback?: Callback\<DiscoveryEventInfo\>): void 515e41f4b71Sopenharmony_ci 516e41f4b71Sopenharmony_ciDisables listening for **discoveryStart** events. 517e41f4b71Sopenharmony_ci 518e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11. 519e41f4b71Sopenharmony_ci 520e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Communication.NetManager.MDNS 521e41f4b71Sopenharmony_ci 522e41f4b71Sopenharmony_ci**Parameters** 523e41f4b71Sopenharmony_ci 524e41f4b71Sopenharmony_ci| Name | Type | Mandatory| Description | 525e41f4b71Sopenharmony_ci|-------------|--------------|-----------|-----------------------------------------------------| 526e41f4b71Sopenharmony_ci| type | string | Yes |Event type. This field has a fixed value of **discoveryStart**.<br>**discoveryStart**: event of starting discovery of MDNS services on the LAN.| 527e41f4b71Sopenharmony_ci| callback | Callback\<DiscoveryEventInfo\> | No |Callback used to return the MDNS service and error information. | 528e41f4b71Sopenharmony_ci 529e41f4b71Sopenharmony_ci**Example** 530e41f4b71Sopenharmony_ci 531e41f4b71Sopenharmony_ci```ts 532e41f4b71Sopenharmony_ciimport { mdns } from '@kit.NetworkKit'; 533e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 534e41f4b71Sopenharmony_ci 535e41f4b71Sopenharmony_ci// See mdns.createDiscoveryService. 536e41f4b71Sopenharmony_cilet context = getContext(this) as Context; 537e41f4b71Sopenharmony_cilet serviceType = "_print._tcp"; 538e41f4b71Sopenharmony_cilet discoveryService = mdns.createDiscoveryService(context, serviceType); 539e41f4b71Sopenharmony_cidiscoveryService.startSearchingMDNS(); 540e41f4b71Sopenharmony_ci 541e41f4b71Sopenharmony_cidiscoveryService.on('discoveryStart', (data: mdns.DiscoveryEventInfo) => { 542e41f4b71Sopenharmony_ci console.log(JSON.stringify(data)); 543e41f4b71Sopenharmony_ci}); 544e41f4b71Sopenharmony_ci 545e41f4b71Sopenharmony_cidiscoveryService.stopSearchingMDNS(); 546e41f4b71Sopenharmony_ci 547e41f4b71Sopenharmony_cidiscoveryService.off('discoveryStart', (data: mdns.DiscoveryEventInfo) => { 548e41f4b71Sopenharmony_ci console.log(JSON.stringify(data)); 549e41f4b71Sopenharmony_ci}); 550e41f4b71Sopenharmony_ci``` 551e41f4b71Sopenharmony_ci 552e41f4b71Sopenharmony_ci### on('discoveryStop') 553e41f4b71Sopenharmony_ci 554e41f4b71Sopenharmony_cion(type: 'discoveryStop', callback: Callback\<DiscoveryEventInfo\>): void 555e41f4b71Sopenharmony_ci 556e41f4b71Sopenharmony_ciEnables listening for **discoveryStop** events. 557e41f4b71Sopenharmony_ci 558e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11. 559e41f4b71Sopenharmony_ci 560e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Communication.NetManager.MDNS 561e41f4b71Sopenharmony_ci 562e41f4b71Sopenharmony_ci**Parameters** 563e41f4b71Sopenharmony_ci 564e41f4b71Sopenharmony_ci| Name | Type | Mandatory| Description | 565e41f4b71Sopenharmony_ci|-------------|--------------|-----------|-----------------------------------------------------| 566e41f4b71Sopenharmony_ci| type | string | Yes |Event type. This field has a fixed value of **discoveryStop**.<br>**discoveryStop**: event of stopping discovery of MDNS services on the LAN.| 567e41f4b71Sopenharmony_ci| callback | Callback\<DiscoveryEventInfo\> | Yes |Callback used to return the MDNS service and error information. | 568e41f4b71Sopenharmony_ci 569e41f4b71Sopenharmony_ci**Example** 570e41f4b71Sopenharmony_ci 571e41f4b71Sopenharmony_ci```ts 572e41f4b71Sopenharmony_ciimport { mdns } from '@kit.NetworkKit'; 573e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 574e41f4b71Sopenharmony_ci 575e41f4b71Sopenharmony_ci// See mdns.createDiscoveryService. 576e41f4b71Sopenharmony_cilet context = getContext(this) as Context; 577e41f4b71Sopenharmony_cilet serviceType = "_print._tcp"; 578e41f4b71Sopenharmony_cilet discoveryService = mdns.createDiscoveryService(context, serviceType); 579e41f4b71Sopenharmony_cidiscoveryService.startSearchingMDNS(); 580e41f4b71Sopenharmony_ci 581e41f4b71Sopenharmony_cidiscoveryService.on('discoveryStop', (data: mdns.DiscoveryEventInfo) => { 582e41f4b71Sopenharmony_ci console.log(JSON.stringify(data)); 583e41f4b71Sopenharmony_ci}); 584e41f4b71Sopenharmony_ci 585e41f4b71Sopenharmony_cidiscoveryService.stopSearchingMDNS(); 586e41f4b71Sopenharmony_ci``` 587e41f4b71Sopenharmony_ci 588e41f4b71Sopenharmony_ci### off('discoveryStop') 589e41f4b71Sopenharmony_ci 590e41f4b71Sopenharmony_cioff(type: 'discoveryStop', callback?: Callback\<DiscoveryEventInfo\>): void 591e41f4b71Sopenharmony_ci 592e41f4b71Sopenharmony_ciDisables listening for **discoveryStop** events. 593e41f4b71Sopenharmony_ci 594e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11. 595e41f4b71Sopenharmony_ci 596e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Communication.NetManager.MDNS 597e41f4b71Sopenharmony_ci 598e41f4b71Sopenharmony_ci**Parameters** 599e41f4b71Sopenharmony_ci 600e41f4b71Sopenharmony_ci| Name | Type | Mandatory| Description | 601e41f4b71Sopenharmony_ci|-------------|--------------|-----------|-----------------------------------------------------| 602e41f4b71Sopenharmony_ci| type | string | Yes |Event type. This field has a fixed value of **discoveryStop**.<br>**discoveryStop**: event of stopping discovery of MDNS services on the LAN.| 603e41f4b71Sopenharmony_ci| callback | Callback\<DiscoveryEventInfo\> | No |Callback used to return the MDNS service and error information. | 604e41f4b71Sopenharmony_ci 605e41f4b71Sopenharmony_ci**Example** 606e41f4b71Sopenharmony_ci 607e41f4b71Sopenharmony_ci```ts 608e41f4b71Sopenharmony_ciimport { mdns } from '@kit.NetworkKit'; 609e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 610e41f4b71Sopenharmony_ci 611e41f4b71Sopenharmony_ci// See mdns.createDiscoveryService. 612e41f4b71Sopenharmony_cilet context = getContext(this) as Context; 613e41f4b71Sopenharmony_cilet serviceType = "_print._tcp"; 614e41f4b71Sopenharmony_cilet discoveryService = mdns.createDiscoveryService(context, serviceType); 615e41f4b71Sopenharmony_cidiscoveryService.startSearchingMDNS(); 616e41f4b71Sopenharmony_ci 617e41f4b71Sopenharmony_cidiscoveryService.on('discoveryStop', (data: mdns.DiscoveryEventInfo) => { 618e41f4b71Sopenharmony_ci console.log(JSON.stringify(data)); 619e41f4b71Sopenharmony_ci}); 620e41f4b71Sopenharmony_ci 621e41f4b71Sopenharmony_cidiscoveryService.stopSearchingMDNS(); 622e41f4b71Sopenharmony_ci 623e41f4b71Sopenharmony_cidiscoveryService.off('discoveryStop', (data: mdns.DiscoveryEventInfo) => { 624e41f4b71Sopenharmony_ci console.log(JSON.stringify(data)); 625e41f4b71Sopenharmony_ci}); 626e41f4b71Sopenharmony_ci``` 627e41f4b71Sopenharmony_ci 628e41f4b71Sopenharmony_ci### on('serviceFound') 629e41f4b71Sopenharmony_ci 630e41f4b71Sopenharmony_cion(type: 'serviceFound', callback: Callback\<LocalServiceInfo>): void 631e41f4b71Sopenharmony_ci 632e41f4b71Sopenharmony_ciEnables listening for **serviceFound** events. 633e41f4b71Sopenharmony_ci 634e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11. 635e41f4b71Sopenharmony_ci 636e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Communication.NetManager.MDNS 637e41f4b71Sopenharmony_ci 638e41f4b71Sopenharmony_ci**Parameters** 639e41f4b71Sopenharmony_ci 640e41f4b71Sopenharmony_ci| Name | Type | Mandatory| Description | 641e41f4b71Sopenharmony_ci|-------------|--------------|-----------|-----------------------------------------------------| 642e41f4b71Sopenharmony_ci| type | string | Yes |Event type. This field has a fixed value of **serviceFound**.<br>**serviceFound**: event indicating an MDNS service is found.| 643e41f4b71Sopenharmony_ci| callback | Callback<[LocalServiceInfo](#localserviceinfo)> | Yes | Callback used to return the MDNS service information. You need to call **resolveLocalService** to parse the information. | 644e41f4b71Sopenharmony_ci 645e41f4b71Sopenharmony_ci**Example** 646e41f4b71Sopenharmony_ci 647e41f4b71Sopenharmony_ci```ts 648e41f4b71Sopenharmony_ciimport { mdns } from '@kit.NetworkKit'; 649e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 650e41f4b71Sopenharmony_ci 651e41f4b71Sopenharmony_ci// See mdns.createDiscoveryService. 652e41f4b71Sopenharmony_cilet context = getContext(this) as Context; 653e41f4b71Sopenharmony_cilet serviceType = "_print._tcp"; 654e41f4b71Sopenharmony_cilet discoveryService = mdns.createDiscoveryService(context, serviceType); 655e41f4b71Sopenharmony_cidiscoveryService.startSearchingMDNS(); 656e41f4b71Sopenharmony_ci 657e41f4b71Sopenharmony_cidiscoveryService.on('serviceFound', (data: mdns.LocalServiceInfo) => { 658e41f4b71Sopenharmony_ci console.info('serviceFound', JSON.stringify(data)); 659e41f4b71Sopenharmony_ci mdns.resolveLocalService(context, data, (error: BusinessError, resolveData: mdns.LocalServiceInfo) => { 660e41f4b71Sopenharmony_ci console.info('serviceFound', JSON.stringify(resolveData)); 661e41f4b71Sopenharmony_ci }); 662e41f4b71Sopenharmony_ci}); 663e41f4b71Sopenharmony_ci 664e41f4b71Sopenharmony_cidiscoveryService.stopSearchingMDNS(); 665e41f4b71Sopenharmony_ci``` 666e41f4b71Sopenharmony_ci 667e41f4b71Sopenharmony_ci### off('serviceFound') 668e41f4b71Sopenharmony_ci 669e41f4b71Sopenharmony_cioff(type: 'serviceFound', callback?: Callback\<LocalServiceInfo>): void 670e41f4b71Sopenharmony_ci 671e41f4b71Sopenharmony_ciDisables listening for **serviceFound** events. 672e41f4b71Sopenharmony_ci 673e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11. 674e41f4b71Sopenharmony_ci 675e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Communication.NetManager.MDNS 676e41f4b71Sopenharmony_ci 677e41f4b71Sopenharmony_ci**Parameters** 678e41f4b71Sopenharmony_ci 679e41f4b71Sopenharmony_ci| Name | Type | Mandatory| Description | 680e41f4b71Sopenharmony_ci|-------------|--------------|-----------|-----------------------------------------------------| 681e41f4b71Sopenharmony_ci| type | string | Yes |Event type. This field has a fixed value of **serviceFound**.<br>**serviceFound**: event indicating an MDNS service is found.| 682e41f4b71Sopenharmony_ci| callback | Callback<[LocalServiceInfo](#localserviceinfo)> | No | MDNS service information. | 683e41f4b71Sopenharmony_ci 684e41f4b71Sopenharmony_ci**Example** 685e41f4b71Sopenharmony_ci 686e41f4b71Sopenharmony_ci```ts 687e41f4b71Sopenharmony_ciimport { mdns } from '@kit.NetworkKit'; 688e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 689e41f4b71Sopenharmony_ci 690e41f4b71Sopenharmony_ci// See mdns.createDiscoveryService. 691e41f4b71Sopenharmony_cilet context = getContext(this) as Context; 692e41f4b71Sopenharmony_cilet serviceType = "_print._tcp"; 693e41f4b71Sopenharmony_cilet discoveryService = mdns.createDiscoveryService(context, serviceType); 694e41f4b71Sopenharmony_cidiscoveryService.startSearchingMDNS(); 695e41f4b71Sopenharmony_ci 696e41f4b71Sopenharmony_cidiscoveryService.on('serviceFound', (data: mdns.LocalServiceInfo) => { 697e41f4b71Sopenharmony_ci console.info('serviceFound', JSON.stringify(data)); 698e41f4b71Sopenharmony_ci mdns.resolveLocalService(context, data, (error: BusinessError, resolveData: mdns.LocalServiceInfo) => { 699e41f4b71Sopenharmony_ci console.info('serviceFound', JSON.stringify(resolveData)); 700e41f4b71Sopenharmony_ci }); 701e41f4b71Sopenharmony_ci}); 702e41f4b71Sopenharmony_ci 703e41f4b71Sopenharmony_cidiscoveryService.stopSearchingMDNS(); 704e41f4b71Sopenharmony_ci 705e41f4b71Sopenharmony_cidiscoveryService.off('serviceFound', (data: mdns.LocalServiceInfo) => { 706e41f4b71Sopenharmony_ci console.log(JSON.stringify(data)); 707e41f4b71Sopenharmony_ci}); 708e41f4b71Sopenharmony_ci``` 709e41f4b71Sopenharmony_ci 710e41f4b71Sopenharmony_ci### on('serviceLost') 711e41f4b71Sopenharmony_ci 712e41f4b71Sopenharmony_cion(type: 'serviceLost', callback: Callback\<LocalServiceInfo>): void 713e41f4b71Sopenharmony_ci 714e41f4b71Sopenharmony_ciEnables listening for **serviceLost** events. 715e41f4b71Sopenharmony_ci 716e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11. 717e41f4b71Sopenharmony_ci 718e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Communication.NetManager.MDNS 719e41f4b71Sopenharmony_ci 720e41f4b71Sopenharmony_ci**Parameters** 721e41f4b71Sopenharmony_ci 722e41f4b71Sopenharmony_ci| Name | Type | Mandatory| Description | 723e41f4b71Sopenharmony_ci|-------------|--------------|-----------|-----------------------------------------------------| 724e41f4b71Sopenharmony_ci| type | string | Yes |Event type. This field has a fixed value of **serviceLost**.<br>serviceLost: event indicating that an MDNS service is removed.| 725e41f4b71Sopenharmony_ci| callback | Callback<[LocalServiceInfo](#localserviceinfo)> | Yes | MDNS service information. | 726e41f4b71Sopenharmony_ci 727e41f4b71Sopenharmony_ci**Example** 728e41f4b71Sopenharmony_ci 729e41f4b71Sopenharmony_ci```ts 730e41f4b71Sopenharmony_ciimport { mdns } from '@kit.NetworkKit'; 731e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 732e41f4b71Sopenharmony_ci 733e41f4b71Sopenharmony_ci// See mdns.createDiscoveryService. 734e41f4b71Sopenharmony_cilet context = getContext(this) as Context; 735e41f4b71Sopenharmony_cilet serviceType = "_print._tcp"; 736e41f4b71Sopenharmony_cilet discoveryService = mdns.createDiscoveryService(context, serviceType); 737e41f4b71Sopenharmony_cidiscoveryService.startSearchingMDNS(); 738e41f4b71Sopenharmony_ci 739e41f4b71Sopenharmony_cidiscoveryService.on('serviceLost', (data: mdns.LocalServiceInfo) => { 740e41f4b71Sopenharmony_ci console.log(JSON.stringify(data)); 741e41f4b71Sopenharmony_ci}); 742e41f4b71Sopenharmony_ci 743e41f4b71Sopenharmony_cidiscoveryService.stopSearchingMDNS(); 744e41f4b71Sopenharmony_ci``` 745e41f4b71Sopenharmony_ci 746e41f4b71Sopenharmony_ci### off('serviceLost') 747e41f4b71Sopenharmony_ci 748e41f4b71Sopenharmony_cioff(type: 'serviceLost', callback?: Callback\<LocalServiceInfo>): void 749e41f4b71Sopenharmony_ci 750e41f4b71Sopenharmony_ciDisables listening for **serviceLost** events. 751e41f4b71Sopenharmony_ci 752e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11. 753e41f4b71Sopenharmony_ci 754e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Communication.NetManager.MDNS 755e41f4b71Sopenharmony_ci 756e41f4b71Sopenharmony_ci**Parameters** 757e41f4b71Sopenharmony_ci 758e41f4b71Sopenharmony_ci| Name | Type | Mandatory| Description | 759e41f4b71Sopenharmony_ci|-------------|--------------|-----------|-----------------------------------------------------| 760e41f4b71Sopenharmony_ci| type | string | Yes |Event type. This field has a fixed value of **serviceLost**.<br>serviceLost: event indicating that an MDNS service is removed.| 761e41f4b71Sopenharmony_ci| callback | Callback<[LocalServiceInfo](#localserviceinfo)> | No | MDNS service information. | 762e41f4b71Sopenharmony_ci 763e41f4b71Sopenharmony_ci**Example** 764e41f4b71Sopenharmony_ci 765e41f4b71Sopenharmony_ci```ts 766e41f4b71Sopenharmony_ciimport { mdns } from '@kit.NetworkKit'; 767e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 768e41f4b71Sopenharmony_ci 769e41f4b71Sopenharmony_ci// See mdns.createDiscoveryService. 770e41f4b71Sopenharmony_cilet context = getContext(this) as Context; 771e41f4b71Sopenharmony_cilet serviceType = "_print._tcp"; 772e41f4b71Sopenharmony_cilet discoveryService = mdns.createDiscoveryService(context, serviceType); 773e41f4b71Sopenharmony_cidiscoveryService.startSearchingMDNS(); 774e41f4b71Sopenharmony_ci 775e41f4b71Sopenharmony_cidiscoveryService.on('serviceLost', (data: mdns.LocalServiceInfo) => { 776e41f4b71Sopenharmony_ci console.log(JSON.stringify(data)); 777e41f4b71Sopenharmony_ci}); 778e41f4b71Sopenharmony_ci 779e41f4b71Sopenharmony_cidiscoveryService.stopSearchingMDNS(); 780e41f4b71Sopenharmony_ci 781e41f4b71Sopenharmony_cidiscoveryService.off('serviceLost', (data: mdns.LocalServiceInfo) => { 782e41f4b71Sopenharmony_ci console.log(JSON.stringify(data)); 783e41f4b71Sopenharmony_ci}); 784e41f4b71Sopenharmony_ci``` 785e41f4b71Sopenharmony_ci 786e41f4b71Sopenharmony_ci## LocalServiceInfo 787e41f4b71Sopenharmony_ci 788e41f4b71Sopenharmony_ciDefines the MDNS service information. 789e41f4b71Sopenharmony_ci 790e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11. 791e41f4b71Sopenharmony_ci 792e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Communication.NetManager.MDNS 793e41f4b71Sopenharmony_ci 794e41f4b71Sopenharmony_ci| Name | Type | Mandatory| Description | 795e41f4b71Sopenharmony_ci| --------------------- | ---------------------------------- | --- | ------------------------ | 796e41f4b71Sopenharmony_ci| serviceType | string | Yes| Type of the MDNS service. The value is in the format of **\_\<name>.<_tcp/_udp>**, where **name** contains a maximum of 63 characters excluding periods (.). | 797e41f4b71Sopenharmony_ci| serviceName | string | Yes| Name of the MDNS service. | 798e41f4b71Sopenharmony_ci| port | number | No| Port number of the MDNS server. | 799e41f4b71Sopenharmony_ci| host | [NetAddress](js-apis-net-connection.md#netaddress) | No| IP address of the device that provides the MDNS service. The IP address is not effective when an MDNS service is added or removed. | 800e41f4b71Sopenharmony_ci| serviceAttribute | Array\<[ServiceAttribute](#serviceattribute)> | No| MDNS service attribute information. | 801e41f4b71Sopenharmony_ci 802e41f4b71Sopenharmony_ci## ServiceAttribute 803e41f4b71Sopenharmony_ci 804e41f4b71Sopenharmony_ciDefines the MDNS service attribute information. 805e41f4b71Sopenharmony_ci 806e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11. 807e41f4b71Sopenharmony_ci 808e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Communication.NetManager.MDNS 809e41f4b71Sopenharmony_ci 810e41f4b71Sopenharmony_ci| Name | Type | Mandatory| Description | 811e41f4b71Sopenharmony_ci| --------------------- | ---------------------------------- | --- | ------------------------ | 812e41f4b71Sopenharmony_ci| key | string | Yes| MDNS service attribute key. The value contains a maximum of 9 characters. | 813e41f4b71Sopenharmony_ci| value | Array\<number> | Yes| MDNS service attribute value. | 814e41f4b71Sopenharmony_ci 815e41f4b71Sopenharmony_ci## DiscoveryEventInfo<sup>11+</sup> 816e41f4b71Sopenharmony_ci 817e41f4b71Sopenharmony_ciDefines the MDNS service event information. 818e41f4b71Sopenharmony_ci 819e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11. 820e41f4b71Sopenharmony_ci 821e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Communication.NetManager.MDNS 822e41f4b71Sopenharmony_ci 823e41f4b71Sopenharmony_ci| Name | Type | Mandatory| Description | 824e41f4b71Sopenharmony_ci| ----------- | ----------------------------------- | --- | --------------------- | 825e41f4b71Sopenharmony_ci| serviceInfo | LocalServiceInfo | Yes| MDNS service information. | 826e41f4b71Sopenharmony_ci| errorCode | MdnsError | No| Defines the MDNS error information. | 827e41f4b71Sopenharmony_ci 828e41f4b71Sopenharmony_ci## MdnsError 829e41f4b71Sopenharmony_ci 830e41f4b71Sopenharmony_ciDefines the MDNS error information. 831e41f4b71Sopenharmony_ci 832e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11. 833e41f4b71Sopenharmony_ci 834e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Communication.NetManager.MDNS 835e41f4b71Sopenharmony_ci 836e41f4b71Sopenharmony_ci| Name | Value | Description | 837e41f4b71Sopenharmony_ci| --------------- | ---- | ----------- | 838e41f4b71Sopenharmony_ci| INTERNAL_ERROR | 0 | Operation failed because of an internal error. | 839e41f4b71Sopenharmony_ci| ALREADY_ACTIVE | 1 | Operation failed because the service already exists.| 840e41f4b71Sopenharmony_ci| MAX_LIMIT | 2 | Operation failed because the number of requests exceeds the maximum value.| 841