示例#1
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);
            }
            catch (Exception ex)
            {
                logger.Error("Exception(): " + ex.Message, ex);
            }
        }
示例#2
0
 void socketStreamerServer_OnClientConnected(object sender, ClientConnectedEventArgs args)
 {
     logger.Info("Recebeu conexao do StreamerServer: " + args.ClientNumber);
 }