4
我在我的應用程序中使用可達性類來監視網絡狀態。以下是從Apple可訪問性示例中檢查因特網可達性的代碼。它適用於IPv4網絡。但它在IPv6 wifi網絡上失敗。ipv6支持的iOS可達性類
+ (instancetype)reachabilityForInternetConnection
{
struct sockaddr_in zeroAddress;
bzero(&zeroAddress, sizeof(zeroAddress));
zeroAddress.sin_len = sizeof(zeroAddress);
zeroAddress.sin_family = AF_INET;
return [self reachabilityWithAddress:&zeroAddress];
}
所以,現在我們是在我們的應用程序,支持IPv6網絡以及過程。當我們升級這些代碼以支持IPv6時,如下所示。
struct sockaddr_in6 zeroAddress;
bzero(&zeroAddress, sizeof(zeroAddress));
zeroAddress.sin6_len = sizeof(zeroAddress);
zeroAddress.sin6_family = AF_INET6;
return [self reachabilityWithAddress: &zeroAddress];
以上的IPv6支持的代碼效果很好爲IPv4的IPv6 & WiFi網絡的iOS9 &更高版本的設備。但在iOS8設備上,IPV4網絡無法使用。那麼蘋果的可達性代碼還有哪些更新可以支持IPV6網絡? 任何幫助,將不勝感激。提前致謝。
我在我的應用程序中使用可達性類來監視網絡狀態。每當wifi狀態發生變化時(開關網絡,關閉wifi等)。對於所有這些情況,我的應用程序將被networkReachabilityChanged回調通知。一旦這個notifcation到達我們的應用程序將嘗試登錄到該熱點,或者如果連接已經可用,它將更新主UI。 對於同樣在使用IPv6 nework支持尋找我。 – user1856666