/// <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(); } }
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) { } }
/// <summary> /// Client has discconected. /// </summary> /// <param name="chs">Client handler socket.</param> public void DisconnectedClient(ClientHandlerSocket chs) { _ConnectedClientSockets.Remove(chs); ClientDisconnected.Invoke(chs); }