Пример #1
0
        /// <summary>
        /// Gets messages from client.
        /// </summary>
        /// <param name="chs">Client handler socket.</param>
        internal void GetMessagesFromClientHandler(ClientHandlerSocket chs)
        {
            bool received = false;

            // Get all received messages
            while (true)
            {
                PlayerRequest rqst = chs.GetNextMessage();

                if (rqst == null)
                {
                    break;
                }
                received = true;

                EnqueueMessage(new AnnotedPlayerRequest()
                {
                    Request = rqst, HandlerSocket = chs
                });
            }

            if (received)
            {
                MessageReceivedInvoke();
            }
        }
Пример #2
0
        protected override void ListeningLoop()
        {
            try
            {
                while (true)
                {
                    Socket newClient = _Socket.Accept();

                    ClientHandlerSocket newChs = new ClientHandlerSocket(this, newClient);

                    _ConnectedClientSockets.Add(newChs);

                    ClientConnected.Invoke(newChs);

                    newChs.Start();
                }
            }
            catch (ThreadAbortException)
            {
            }
        }
Пример #3
0
 /// <summary>
 /// Client has discconected.
 /// </summary>
 /// <param name="chs">Client handler socket.</param>
 public void DisconnectedClient(ClientHandlerSocket chs)
 {
     _ConnectedClientSockets.Remove(chs);
     ClientDisconnected.Invoke(chs);
 }