0

我有这段代码来测试网络连接:

        if (remoteHostReachability == null) {
            remoteHostReachability = new NetworkReachability (HostName);

            // Need to probe before we queue, or we wont get any meaningful values
            // this only happens when you create NetworkReachability from a hostname
            reachable = remoteHostReachability.TryGetFlags (out flags);

            //remoteHostReachability.SetCallback (OnChange);
            remoteHostReachability.SetNotification (OnChange);
            remoteHostReachability.Schedule (CFRunLoop.Current, CFRunLoop.ModeDefault);
        } else {
            reachable = remoteHostReachability.TryGetFlags (out flags);
        }

第一次调用它时,标志是可以的。但是,当第二次调用它时,标志总是等于零。在 iOS 模拟器 5.0 上测试。

有什么问题?在AppleXamarin的示例中,NetworkReachability 创建了一次。

4

1 回答 1

0

我在使用可达性时发现,而不是测试远程状态,我只是确保主机是可达的。

Reachability.HostName = "www.google.com";
var reachable = (Reachability.InternetConnectionStatus() != NetworkStatus.NotReachable) && Reachability.IsHostReachable("www.google.com");
于 2013-09-03T06:44:29.140 回答