3

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

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

4

3 回答 3

2

您不必从头开始执行此操作。有一个名为 Unity API 的新 APINetworkDiscovery旨在简化此操作。

要查找要连接的 IP 地址,请NetworkDiscovery.StartAsServer()在该Start()函数中调用服务器端一次。

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

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

如果您只是为了学习目的而这样做,您只需要使用 UDP 协议进行广播。有关更多信息,您可以阅读thisthis

于 2017-01-25T21:02:59.110 回答
0

unity原生的新解决方案是Netcode Network Discovery

它实际上不再是受支持的解决方案。只有示例代码。

于 2022-01-05T17:08:29.810 回答
0

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

于 2017-02-05T14:53:37.420 回答