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); }
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; } }