/// <summary> /// Called by the table view selection delegate callback to start the ping. /// </summary> public void Start(bool forceIPv4, bool forceIPv6) { PingerWillStart(); Console.WriteLine("start"); pinger = new SimplePing(HostName); // By default we use the first IP address we get back from host resolution (.Any) // but these flags let the user override that. if (forceIPv4 && !forceIPv6) { pinger.AddressStyle = SimplePingAddressStyle.ICMPv4; } else if (forceIPv6 && !forceIPv4) { pinger.AddressStyle = SimplePingAddressStyle.ICMPv6; } pinger.Started += OnStarted; pinger.Failed += OnFailed; pinger.Sent += OnSent; pinger.SendFailed += OnSendFailed; pinger.ResponseRecieved += OnResponseRecieved; pinger.UnexpectedResponse += OnUnexpectedResponse; pinger.Start(); }
public void Go() { if (!_completed) { throw new InvalidOperationException("You must wait until the current ping is completed."); } _completed = false; if (NSThread.IsMain) { _pinger.Start(); } else { NSThread.MainThread.InvokeOnMainThread(new NSAction(() => { _pinger.Start(); })); } // start the timeout Task.Factory.StartNew(state => { System.Threading.Thread.Sleep((state as SimplePingHelper).Timeout); (state as SimplePingHelper).Fail(); }, this); }
public override void ViewDidLoad() { base.ViewDidLoad(); pinger = new SimplePing(HostName); // By default we use the first IP address we get back from host resolution (.Any) // but these flags let the user override that. pinger.Started += OnStarted; pinger.Failed += OnFailed; pinger.Sent += OnSent; pinger.SendFailed += OnSendFailed; pinger.ResponseRecieved += OnResponseRecieved; pinger.UnexpectedResponse += OnUnexpectedResponse; pinger?.Start(); }