Networking_GetInterfaceConnectionStatus函數

頁首: #include < applibs/networking。h>

取得網路介面的網路線上狀態。 當 Networking_GetInterfaceConnectionStatus 稱為時,作業系統會傳回最後一個已知狀態,並嘗試在Networking_InterfaceConnectionStatus列舉中更新指定的介面狀態。

傳回的Networking_InterfaceConnectionStatus列舉會反映介面、網路連線、IP 位址和網際網路連線的上次已知狀態。 呼叫 Networking_GetInterfaceConnectionStatus 時,作業系統會嘗試更新這些狀態標幟,並撥打 Azure 球體作業系統網路需求中所述的通話 http://www.msftconnecttest.com ,以判斷裝置是否具有網際網路連線能力。

應用程式可能會根據 Networking_InterfaceConnectionStatus_ConnectedToInternet 狀態採取行動,這會指出裝置是否已連線到網際網路。 不過,基於各種原因,在狀態更新與應用程式嘗試連線到網際網路的時間之間,網路或網際網路連線可能會遺失。 因此,應用程式應包含邏輯,以便在遇到網路和網際網路可用性變更時,選擇智慧型選項。 應用程式應處理連線錯誤並據此調整。

如果傳回的狀態表示裝置未連線到網際網路,應用程式可能會再次呼叫 Networking_GetInterfaceConnectionStatus ,以判斷裝置狀態何時變更。

如果Networking_InterfaceConnectionStatus_ConnectedToInternet表示裝置已連線到網際網路,則裝置不應每隔 90 秒對狀態進行一次以上的投票。 如果此線上狀態函數重複傳回表示裝置已連線到網際網路,作業系統會節流狀態檢查輪詢間隔是否太短。 建議的應用程式輪詢間隔為一個要求/2 分鐘。

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

參數

錯誤

如果發生錯誤並設定為 errno 錯誤值,則傳回 -1。

  • EFAULT:參數 outStatus 為 Null。

  • ENOENT: networkInterfaceName 介面不存在。

  • EAGAIN:網路堆疊尚未準備就緒。

您也可以指定任何其他 errno 錯誤;這類錯誤不是不確定的,同樣的行為可能無法透過系統更新來保留。

傳回值

傳回 0 表示成功,-1 代表失敗,在這種情況下 errno 會設定為錯誤值。

概念和範例