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);
参数
networkInterfaceName
网络接口的名称。outStatus
指向接收网络连接状态 的Networking_InterfaceConnectionStatus 枚举的指针。
错误
如果遇到错误并设置为 errno
错误值,则返回 -1。
EFAULT:
outStatus
参数为 NULL。ENOENT:
networkInterfaceName
接口不存在。EAGAIN:网络堆栈未准备就绪。
还可以指定任何其他 errno
错误;此类错误不是确定性的,并且可能不会通过系统更新保留相同的行为。
返回值
成功返回 0,失败返回 -1,在这种情况下 errno
,设置为错误值。