コード例 #1
0
        /// <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();
        }
コード例 #2
0
 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);
 }
コード例 #3
0
        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();
        }