Exemplo n.º 1
0
        void serverAlertas_OnClientConnected(object sender, ClientConnectedEventArgs args)
        {
            // gera snapshot dos alertas cadastrados
            string        snapshotAlertas = gerenciadorAlertas.GerarSnapshot();
            StringBuilder retornoSnapshot = new StringBuilder();

            retornoSnapshot.Append("SS");
            retornoSnapshot.Append(snapshotAlertas);

            logger.Debug("Server - Enviando Snapshot [" + retornoSnapshot.ToString() + "]");
            serverAlertas.SendData(retornoSnapshot.ToString(), args.ClientSocket);
        }
Exemplo n.º 2
0
        private void OnClientConnect(IAsyncResult asyn)
        {
            try
            {
                Socket ActiveSocket = MainSocket.EndAccept(asyn);

                Interlocked.Increment(ref ClientCount);
                this.WaitForData(ActiveSocket, ClientCount);

                lock (HashActiveClients)
                {
                    if (HashActiveClients.ContainsKey(ClientCount))
                    {
                        HashActiveClients[ClientCount] = ActiveSocket;
                    }
                    else
                    {
                        HashActiveClients.Add(ClientCount, ActiveSocket);
                    }
                }

                ClientConnectedEventArgs args = new ClientConnectedEventArgs();

                args.ClientNumber = ClientCount;
                args.ClientSocket = ActiveSocket;

                if (OnClientConnected != null)
                {
                    OnClientConnected(this, args);
                }

                MainSocket.BeginAccept(new AsyncCallback(OnClientConnect), null);
            }

            catch (SocketException se)
            {
                logger.Error("OnClientConnect(): " + se.Message, se);
                throw se;
            }
        }