Exemplo n.º 1
0
        private void sockServer_OnClientConnected(object sender, ClientConnectedEventArgs args)
        {
            logger.Info("Cliente [" + args.ClientNumber + "] [" + args.ClientSocket.RemoteEndPoint.ToString() + "] conectou");

            ClientHandlerState state = new ClientHandlerState();

            state.ClientNumber = args.ClientNumber;
            state.ClientSocket = args.ClientSocket;

            state.ClientHandler = new StreamerClientHandler(state.ClientNumber, state.ClientSocket);
            state.ClientHandler.Start();

            dctClientes.Add(args.ClientNumber, state);
        }
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;
            }
        }