有什么方法可以检查我的嵌入式设备实际上是否具有工作连接(即可以访问 WAN)?我的设备没有 RTOS,因此我不能依赖 ping 等操作系统功能。我可以看到 DHCP 为我的设备提供了正确的 IP,但并不是 100% 正确,如果提供正确的 IP,我就可以访问例如 www.google.com。
我已经做了一些研究,并且有不同的方法:
- 不可能
- 这是一个愚蠢的问题
- 各种解决方法,但我对 SO 充满信心,所以我会尝试一下。
所以,如果这个问题有 1) 或 2) 作为回复,我会删除它,没关系。
有什么方法可以检查我的嵌入式设备实际上是否具有工作连接(即可以访问 WAN)?我的设备没有 RTOS,因此我不能依赖 ping 等操作系统功能。我可以看到 DHCP 为我的设备提供了正确的 IP,但并不是 100% 正确,如果提供正确的 IP,我就可以访问例如 www.google.com。
我已经做了一些研究,并且有不同的方法:
所以,如果这个问题有 1) 或 2) 作为回复,我会删除它,没关系。
谢谢大家的支持。我终于使用了 Helmar 描述的方法,在该方法中我只是尝试到达所需的目标并查看。如果我能得到目标的回复,我就知道我的连接是活动的并且正在运行,否则我设法断开设备并使用新的新连接重试。
我不能依赖像 ping 这样的操作系统功能。
自己执行 ping。您可能可以找到适合您平台的示例。
或者通过您可以支持的其他协议联系某些服务;只是不要假设该服务将在设备的整个生命周期内保持可用,除非它是您管理的服务器。
我需要从互联网访问设备并与其交换数据
如果您的实际目标是允许入站流量,通常这是一个坏主意,并且最终用户很难让他们的网络允许。相反,您通常会建立/维护到服务器的出站连接,它可以隧道或中继针对您的设备的经过审查的传入流量。您可以轻松地为使/维护/重新连接此隧道的代码配备输出机制以指示其健康状况。