次の方法で共有


Networking_GetInterfaceConnectionStatus関数

ヘッダー: applibs </networking.h #include>

ネットワーク インターフェイスのネットワーク接続状態を取得します。 Networking_GetInterfaceConnectionStatusが呼び出されると、OS は最後の既知の状態を返し、Networking_InterfaceConnectionStatus列挙型で指定されたインターフェイスの状態を更新しようとします。

返されるNetworking_InterfaceConnectionStatus列挙型には、インターフェイス、ネットワーク接続、IP アドレス、インターネット接続の最後の既知の状態が反映されます。 Networking_GetInterfaceConnectionStatusが呼び出されると、OS は、デバイスにインターネット接続があるかどうかを判断するために、これらの状態フラグを更新し、Azure Sphere OS ネットワーク要件で説明されているように を呼び出http://www.msftconnecttest.comそうとします。

アプリケーションは、デバイスがインターネットに接続されているかどうかを示す Networking_InterfaceConnectionStatus_ConnectedToInternet 状態に基づいてアクションを実行できます。 ただし、さまざまな理由により、状態が更新されてからアプリケーションがインターネットへの接続を試みるまでの間に、ネットワークまたはインターネット接続が失われる可能性があります。 そのため、アプリケーションには、ネットワークとインターネットの可用性の変化に遭遇したときにスマートな選択を可能にするロジックを含める必要があります。 アプリケーションは接続エラーを処理し、それに応じて適応する必要があります。

返された状態がデバイスがインターネットに接続されていないことを示している場合、アプリケーションはデバイスの状態がいつ変更されたかを判断するために、 Networking_GetInterfaceConnectionStatus をもう一度呼び出す可能性があります。

Networking_InterfaceConnectionStatus_ConnectedToInternetデバイスがインターネットに接続されていることを示している場合、デバイスは 90 秒ごとに 1 回以上状態をポーリングしないでください。 この接続状態関数が、デバイスがインターネットに接続されていることを示すメッセージを繰り返し返す場合、ポーリング間隔が短すぎる場合、OS は状態チェックを調整します。 推奨されるアプリケーション ポーリング間隔は、1 要求/2 分です。

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

パラメーター

  • networkInterfaceName ネットワーク インターフェイスの名前。

  • outStatus ネットワーク接続の状態を受け取る Networking_InterfaceConnectionStatus 列挙型へのポインター。

エラー

エラーが発生した場合は -1 を返し、エラー値に設定します errno

  • EFAULT: パラメーターは outStatus NULL です。

  • ENOENT: networkInterfaceName インターフェイスが存在しません。

  • EAGAIN: ネットワーク スタックの準備ができていない。

その他 errno のエラーも指定できます。このようなエラーは決定的ではなく、同じ動作はシステム更新によって保持されない可能性があります。

戻り値

成功の場合は 0、失敗の場合は -1 を返します。この場合 errno はエラー値に設定されます。

概念とサンプル