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