我正在开发一款游戏,使用 PC 作为显示器,使用手机作为手势检测器。两个设备都使用 UDP 在同一个本地网络(主要是 Wi-Fi)上进行通信。
首先,PC 创建一个套接字并显示其 IP 地址和端口,以便手机通过发送消息进行连接。但是,有时手机无法找到 PC。消息已发送,但 PC 无法接收(使用 Wireshark 检查。PC 上没有传入消息)。甚至地址和端口都是正确的。但是,如果 PC 能够成功 ping 手机,此后发送的消息将正常到达。
问题是,有时候,尤其是在切换到另一个本地网络后,ping 不成功。我们发现两个设备无法互相 ping 通。
PC 发出的错误信息是:
Reply From <Host IP Address>: Destination Host Unreachable
发现这个IP地址是ping主机的IP地址,而且PC的ARP表中也没有手机的条目,于是我们进一步清空了PC的ARP表,但是还是无法ping通。
编辑:该tracert
命令也失败了。我不记得错误是什么,所以我没有在这里粘贴。现在,我正在尝试重现它(我们很久没有遇到过这种情况了,但似乎用户遇到过)。
我们设法用另一部手机 ping 电脑和第一部手机,使问题消失。然后,对两个有问题的设备进行 ping 都会成功。我不确定这是否真的是解决方案,因为我不知道原因。我也不确定这是否是由路由器配置或防火墙引起的,因为有时它无需执行任何操作就可以正常工作。
游戏现已发布给用户,其中一些用户报告了连接问题。我们仍然可以告诉他们使用其他网络来避免这种情况。但是,我想知道真正的原因,以便我们能够永久摆脱它。