Networking_GetInterfaceConnectionStatus 函数

标头: #include <applibs/networking.h>

获取网络接口的网络连接状态。 调用 Networking_GetInterfaceConnectionStatus 时,OS 将返回上一个已知状态,并尝试更新Networking_InterfaceConnectionStatus枚举中的指定接口状态。

返回的Networking_InterfaceConnectionStatus枚举反映了接口、网络连接、IP 地址和 Internet 连接的最后已知状态。 调用 Networking_GetInterfaceConnectionStatus 时,OS 会尝试更新这些状态标志并调用 http://www.msftconnecttest.com Azure Sphere OS 网络要求中所述,以确定设备是否具有 Internet 连接。

应用程序可能会根据 Networking_InterfaceConnectionStatus_ConnectedToInternet 状态执行操作,该状态指示设备是否已连接到 Internet。 但是,由于各种原因,在状态更新到应用程序尝试连接到 Internet 的时间之间,网络或 Internet 连接可能会丢失。 因此,应用程序应包含逻辑,允许在遇到网络和 Internet 可用性更改时做出明智的选择。 应用程序应处理连接错误并相应地进行调整。

如果返回的状态指示设备未连接到 Internet,则应用程序可能会再次调用 Networking_GetInterfaceConnectionStatus ,以确定设备状态何时更改。

如果Networking_InterfaceConnectionStatus_ConnectedToInternet指示设备已连接到 Internet,则设备不应每 90 秒轮询一次以上的状态。 如果此连接状态函数重复返回指示设备已连接到 Internet,则如果轮询间隔太短,则 OS 会限制状态检查。 建议的应用程序轮询间隔为一个请求/两分钟。

int Networking_GetInterfaceConnectionStatus(const char *networkInterfaceName, Networking_InterfaceConnectionStatus *outStatus);

参数

错误

如果遇到错误并设置为 errno 错误值,则返回 -1。

  • EFAULT: outStatus 参数为 NULL。

  • ENOENT: networkInterfaceName 接口不存在。

  • EAGAIN:网络堆栈未准备就绪。

还可以指定任何其他 errno 错误;此类错误不是确定性的,并且可能不会通过系统更新保留相同的行为。

返回值

成功返回 0,失败返回 -1,在这种情况下 errno ,设置为错误值。

概念和示例