免责声明:我对 Unity\C# 网络几乎一无所知
位于 Airconsole/scripts/editor/Extensions.cs 的 Unity 空中控制台包中的脚本包含方法 GetLocalAddress()。
这种方法在我的 Mac(MacOS 10.12.1,Unity 5.5.0f3)上会导致运行时错误,但在朋友的 Windows 机器(Win10,Unity 5.5.0f3)上不会。
错误是: SocketException: No such host is known, System.Net.Dns.GetHostByName (System.String hostName)
导致错误的行是:
foreach (IPAddress ip in Dns.GetHostEntry(Dns.GetHostName()).AddressList) {
Dns.GetHostName() 返回我的计算机名称:“MacMini”,但将其作为参数传递给 Dns.GetHostEntry() 会导致错误。
为了在开发过程中解决这个问题,我将 GetLocalAddress() 方法中包含的代码替换为一行:
return UnityEngine.Network.player.ipAddress.ToString();
并且 Unity 项目在我的浏览器中正常运行的虚拟控制器运行。
关于什么会导致这个问题的任何想法?