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);
參數
networkInterfaceName
網路介面的名稱。outStatus
接收網路線上狀態 之Networking_InterfaceConnectionStatus 列的指標。
錯誤
如果發生錯誤並設定為 errno
錯誤值,則傳回 -1。
EFAULT:參數
outStatus
為 Null。ENOENT:
networkInterfaceName
介面不存在。EAGAIN:網路堆疊尚未準備就緒。
您也可以指定任何其他 errno
錯誤;這類錯誤不是不確定的,同樣的行為可能無法透過系統更新來保留。
傳回值
傳回 0 表示成功,-1 代表失敗,在這種情況下 errno
會設定為錯誤值。