NetworkReachability Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Used to detect the reachability of the network and to get notifications on network reachability changes.
public class NetworkReachability : IDisposable, ObjCRuntime.INativeObject
type NetworkReachability = class
interface INativeObject
interface IDisposable
- Inheritance
-
NetworkReachability
- Implements
Remarks
You instantiate this class with a hostname or an IP address, and then use the TryGetFlags(NetworkReachabilityFlags) to get the reachability status.
To be notified of changes in the reachability of the specified host, you use the SetNotification(NetworkReachability+Notification) method to register a callback that will be invoked when there is a network reachability event and then call one of the Schedule(CFRunLoop, String) methods to start the event delivery. Additionally, SetDispatchQueue(DispatchQueue) can be used to configure the queue upon which the notification is invoked.
You can detect the ad-hoc WiFi network using the IP address 169.254.0.0 and the general network availability with 0.0.0.0.
// Track the reachability to a specific host
void Setup ()
{
reachability = new NetworkReachability ("www.google.com");
// Need to probe before we queue, or we wont get any meaningful values
// this only happens when you create NetworkReachability from a hostname
reachable = reachability.TryGetFlags (out flags);
reachability.SetNotification (OnChange);
reachability.Schedule (CFRunLoop.Current, CFRunLoop.ModeDefault);
}
void OnChange (NetworkReachabilityFlags flags)
{
Console.WriteLine ("New state for host: " + flags);
}
Constructors
NetworkReachability(IPAddress, IPAddress) |
Creates a network reachability object from a local IP address and a remote one. |
NetworkReachability(IPAddress) |
Creates a network reachability class based on an IP address. |
NetworkReachability(String) |
Creates a network reachability object from a hostname. |
Properties
Handle |
Handle (pointer) to the unmanaged object representation. |
Methods
Dispose() |
Releases the resources used by the NetworkReachability object. |
Dispose(Boolean) |
Releases the resources used by the NetworkReachability object. |
Finalize() |
Finalizer for the NetworkReachability object |
GetFlags(NetworkReachabilityFlags) |
Method used to get the current reachability flags for this host. |
Schedule() |
Schedules the delivery of the events (what is set with SetCallback) on the current loop. |
Schedule(CFRunLoop, String) |
Schedules the delivery of the events (what is set with SetCallback) on the given run loop. |
SetDispatchQueue(DispatchQueue) |
Specifies the DispatchQueue to be used for callbacks. |
SetNotification(NetworkReachability+Notification) |
Configures the method to be invoked when network reachability changes. |
TryGetFlags(NetworkReachabilityFlags) |
Method used to get the current reachability flags for this host. |
Unschedule() |
Removes the NetworkRechability from the given run loop. |
Unschedule(CFRunLoop, String) |
Removes the NetworkRechability from the given run loop. |