예제 #1
0
        protected override IcmpDatagram GetDatagramToSend(SendEchoInfo info)
        {
            var icmpDatagram = new IcmpEchoRequestDatagram();

            icmpDatagram.Data       = Encoding.ASCII.GetBytes(info.Data);
            icmpDatagram.Identifier = info.Identifier;
            icmpDatagram.Sequence   = info.Sequence;

            return(icmpDatagram);
        }
예제 #2
0
            protected override Socket GetHost(SendEchoInfo info)
            {
                var tracertInfo = info as SendTracertInfo;

                if (Host == null)
                {
                    Host = base.GetHost(info);
                }

                Host.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.IpTimeToLive, tracertInfo.Ttl);

                return(Host);
            }
예제 #3
0
            protected override Socket GetHost(SendEchoInfo info)
            {
                var tracertInfo = info as SendTracertInfo;

                if (Host == null)
                {
                    Host = base.GetHost(info);
                }

                Host.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.IpTimeToLive, tracertInfo.Ttl);

                return Host;
            }
예제 #4
0
        public void Send(IPAddress ipAddress, Action <SendResult <IcmpEchoResponseDatagram> > finished)
        {
            var info = new SendEchoInfo(ipAddress, 3000, 1, 1, "test datagram");

            Send(info, finished);
        }
예제 #5
0
 public void Send(SendEchoInfo info, Action <SendResult <IcmpEchoResponseDatagram> > finished)
 {
     SendToHost(info, finished);
 }