Example #1
0
        protected override void NewClientAccepted(Socket socket)
        {
            SocketAsyncEventArgs receiveArgs = _receiveEventArgsPool.Pop();
            SocketAsyncEventArgs sendArgs    = _sendEventArgsPool.Pop();

            UserSocket client = new UserSocket(socket, this);

            client.SetSocketAsyncEventArg(sendArgs, receiveArgs);
            client.ID    = Interlocked.Increment(ref _socketIdSeq);
            client.State = SocketState.CONNECTED;

            Monitor.Enter(_userSocketDictLock);
            _userSocketDict[client.ID] = client;
            Monitor.Exit(_userSocketDictLock);

            client.StartReceive();
        }