我想实现一个服务发现模块来获取服务广播设备的 IP 地址,类似于 bonjour 浏览器。是否可以在 Unity3D(Android/iOS)中实现它。谁能指导我如何实现它。一个小例子会很有帮助。谢谢
编辑 1:IOT 设备正在广播 DNS 服务,我想在 Unity 应用程序中获取此服务以查找 IOT 设备的 IP 地址。我无权访问 IOT 设备软件或源代码。
您不必从头开始执行此操作。有一个名为 Unity API 的新 APINetworkDiscovery
旨在简化此操作。
要查找要连接的 IP 地址,请NetworkDiscovery.StartAsServer()
在该Start()
函数中调用服务器端一次。
在客户端,调用NetworkDiscovery.StartAsClient()
然后实现该OnReceivedBroadcast(string fromAddress, string data);
功能。找到服务器后,OnReceivedBroadcast(string fromAddress, string data);
将调用该函数,然后您可以使用返回的fromAddress
值连接到您的服务器。
当客户端连接时,您可以通过调用来停止广播NetworkDiscovery.StopBroadcast()
。
unity原生的新解决方案是Netcode Network Discovery
它实际上不再是受支持的解决方案。只有示例代码。
这是一个执行 DNS 服务发现的 iOS 插件: https ://docs.unity3d.com/Manual/PluginsForIOS.html