Ejemplo n.º 1
0
        public void Send(IcmpEchoSender.SendEchoInfo info, Action <IList <SendResult <IcmpEchoResponseDatagram> > > finished)
        {
            IPEndPoint endPoint = null;

            var finishedResult = new List <SendResult <IcmpEchoResponseDatagram> >();

            var senderImpl = new IcmpTracertSenderImpl();

            var lastTtl = 1;

            var manualResetevent = new ManualResetEvent(false);

            while (endPoint == null || endPoint.Address != info.IpAddress)
            {
                senderImpl.Send(new SendTracertInfo(info, lastTtl++),
                                result =>
                {
                    endPoint = result.EndPoint as IPEndPoint;

                    finishedResult.Add(result);

                    manualResetevent.Set();
                });

                info.IncreaseSequence();

                manualResetevent.WaitOne();
                manualResetevent.Reset();
            }

            senderImpl.CloseHost();

            finished(finishedResult);
        }
Ejemplo n.º 2
0
        public void Send(IPAddress ipAddress, Action <IList <SendResult <IcmpEchoResponseDatagram> > > finished)
        {
            var info = new IcmpEchoSender.SendEchoInfo(ipAddress, 3000, 1, 1, "test datagram");

            Send(info, finished);
        }
Ejemplo n.º 3
0
 public SendTracertInfo(IcmpEchoSender.SendEchoInfo echoInfo, int ttl)
     : this(echoInfo.IpAddress, echoInfo.ReceiveTimeout, echoInfo.Identifier, echoInfo.Sequence, echoInfo.Data, ttl)
 {
 }