The Probe message is part of the WS-Discovery standard.
        /// <summary>
        /// Receive probe message.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="message">The probe message.</param>
        private void Server_ReceiveProbeMessage(IPEndPoint sender, SoapEnvelope message)
        {
            WsdHeader header = (WsdHeader)message.Header;
            ProbeType probe  = ((ProbeOp)message.Body).Probe;

            if (!this.isReceived && (!this.returned.Contains(header.MessageID.Value)))
            {
                this.isReceived = true;

                ProbeMsg probeMsg = new ProbeMsg(header.MessageID.Value, probe.Types, probe.Scopes.Text[0]);
                this.ReceiveProbeMessage(sender, probeMsg);
            }
        }
        /// <summary>
        /// Receive probe message.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="message">The probe message.</param>
        private void Server_ReceiveProbeMessage(IPEndPoint sender, SoapEnvelope message)
        {
            WsdHeader header = (WsdHeader)message.Header;
            ProbeType probe = ((ProbeOp)message.Body).Probe;
            if (!this.isReceived && (!this.returned.Contains(header.MessageID.Value)))
            {
                this.isReceived = true;

                ProbeMsg probeMsg = new ProbeMsg(header.MessageID.Value, probe.Types, probe.Scopes.Text[0]);
                this.ReceiveProbeMessage(sender, probeMsg);
            }
        }