我有一个iOS应用程序,它是一个简单的客户端或“远程”应用程序,当用户按下应用程序中的按钮时,该应用程序会将一些字节发送到硬件设备。硬件设备是带有WiFly shield RN171的Arduino。该设备广播一个AdHoc WiFi网络。连接到AdHoc网络后,iPhone将在169.254.0.0/16子网中具有IP地址。硬件设备的IP地址为169.254.1.1。
由于更新到iOS 10,因此应用程序无法连接到硬件设备,并收到错误“主机已关闭”。作为故障排除的一种方法,我从App Store安装了通用的网络Ping工具,该工具会产生相同的错误:当我尝试从iPhone ping硬件设备169.254.1.1时,“主机已关闭”。
但是,我可以从硬件设备ping iPhone。
这是在我的仍在运行iOS 9的“开发电话”中的非问题。该应用程序很高兴地连接到硬件设备,并且相同的“网络Ping”工具可以对硬件设备进行ping操作。
我想知道iOS 10中的联网工具集是否有任何更改可能导致了此问题?我找不到任何可以这么说的资源,也不确定如何解决此问题...
最佳答案
正如我在对其中一个答案的评论中提到的那样,我们被迫将设备切换为在非保留子网(例如192.168.10.0)上运行,因为最新的iOS更新直接阻止了设备在链接上建立连接-本地子网(即169.254.0.0/16)。即使在启用“NSAllowsLocalNetworking”和“NSAllowsArbitraryLoads”并将链接本地子网添加到“NSExceptionDomains”之后,尝试将iPhone连接到链接本地子网上的设备仍未成功。
关于ios - 在iOS 10更新后Ping导致“主机已关闭”(但不是!)错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39728990/