如何在Unity3D中实现DNS - 服务发现,类似于Bonjour浏览器

时间:2017-01-25 18:51:25

标签: c# service bonjour discovery dns-sd

我想实现一个服务发现模块来获取服务广播设备的IP地址,类似于bonjour浏览器。是否可以在Unity3D(Android / iOS)中实现它。任何人都可以指导我如何实现它。一个小例子真的很有帮助。 感谢

编辑1:IOT设备正在广播DNS服务,我想在Unity应用程序中获取此服务以查找IOT设备的IP地址。我无法访问物联网设备软件或源代码。

2 个答案:

答案 0 :(得分:2)

您不必从头开始这样做。有一个名为NetworkDiscovery的新Unity API,旨在简化此操作。

要查找要连接的IP地址,请在NetworkDiscovery.StartAsServer()功能中调用服务器端的Start()

在客户端,请致电NetworkDiscovery.StartAsClient(),然后实施OnReceivedBroadcast(string fromAddress, string data);功能。找到服务器后,将调用OnReceivedBroadcast(string fromAddress, string data);函数,然后您可以使用返回的fromAddress值连接到您的服务器。

当客户端连接时,您可以通过调用NetworkDiscovery.StopBroadcast()停止广播。

如果您只是为了学习目的而这样做,您只需要使用UDP协议进行广播。有关详细信息,请参阅thisthis

答案 1 :(得分:1)

这是一个执行DNS服务发现的iOS插件: https://docs.unity3d.com/Manual/PluginsForIOS.html