internal void SendSignOnReply(IPAddress remoteIP)
        {
            if (remoteIP == null || remoteIP == IPAddress.None)
            {
                return;
            }
            IPEndPoint receiverEndPoint = new IPEndPoint(remoteIP, MulticastGroupIpEndPoint.Port);

            Message message = new SignonMessage();
            message.HeaderData.IsReply = true;

            Socket udpSocket = SocketHelper.GetUdpSocketForSender();

            SendMessage(udpSocket, receiverEndPoint, message);
        }
        internal void SendSignOn()
        {
            List<Socket> mcastSenderSockets = SocketHelper.GetUdpMulticastSocketForSender(MulticastGroupIpEndPoint);

            if (mcastSenderSockets == null || mcastSenderSockets.Count == 0)
            {
                return;
            }

            Message message = new SignonMessage();
            foreach (Socket mcastSenderSocket in mcastSenderSockets)
            {
                if (mcastSenderSocket == null)
                {
                    continue;
                }
                SendMessage(mcastSenderSocket, MulticastGroupIpEndPoint, message);
            }
        }