/// <summary>
        /// Клиент установил соединение с сервером
        /// </summary>
        /// <param name="sender">Источник события</param>
        /// <param name="e">Параметры события</param>
        void OnConnect(object sender, ServerEventArgs e)
        {
            TcpDevClient client = new TcpDevClient();

            client.Socket             = e.Socket;
            client.Socket.SendTimeout = 1000;

            client.Share     = shareClientMutex;
            client.OnPacket += new TcpDevClient.PacketEventHandler(client_OnPacket);

            bool blocked = false;

            try
            {
                if (mutex.WaitOne(100, false))
                {
                    blocked = true;
                    clients.Add(client);
                }
            }
            finally
            {
                if (blocked)
                {
                    mutex.ReleaseMutex();
                }
            }
        }
 /// <summary>
 /// проверить клиента на валидность
 /// </summary>
 /// <param name="obj">Проверяемый клиент</param>
 /// <returns>Истина - если клиент правильный, в противном случае ложь</returns>
 private bool Predicate(TcpDevClient obj)
 {
     try
     {
         if (obj != null)
         {
             if (obj.Socket != null)
             {
                 return(!(obj.Socket.Connected));
             }
         }
     }
     catch { }
     return(true);
 }
 /// <summary>
 /// проверить клиента на валидность
 /// </summary>
 /// <param name="obj">Проверяемый клиент</param>
 /// <returns>Истина - если клиент правильный, в противном случае ложь</returns>
 private bool Predicate(TcpDevClient obj)
 {
     try
     {
         if (obj != null)
         {
             if (obj.Socket != null)
             {
                 return !(obj.Socket.Connected);
             }
         }
     }
     catch { }
     return true;
 }
        /// <summary>
        /// Клиент установил соединение с сервером
        /// </summary>
        /// <param name="sender">Источник события</param>
        /// <param name="e">Параметры события</param>
        void OnConnect(object sender, ServerEventArgs e)
        {
            TcpDevClient client = new TcpDevClient();

            client.Socket = e.Socket;
            client.Socket.SendTimeout = 1000;

            client.Share = shareClientMutex;
            client.OnPacket += new TcpDevClient.PacketEventHandler(client_OnPacket);

            bool blocked = false;
            try
            {
                if (mutex.WaitOne(100, false))
                {
                    blocked = true;
                    clients.Add(client);
                }
            }
            finally
            {
                if (blocked) mutex.ReleaseMutex();
            }
        }