private void Recive(IAsyncResult ar) { SocketState _ss = (SocketState)ar.AsyncState; Socket client = _ss.socket; int read = client.EndReceive(ar); if (read > 1) { var _socketInfo = clientList.Find(x => x.Id == client.Handle.ToString()); if (_socketInfo != null) { if (_socketInfo.LastMessageDate != null) { var _waitCalc = _socketInfo.LastMessageDate.Value; if (_waitCalc.Ticks >= DateTime.Now.AddMilliseconds(-900).Ticks) { if (_socketInfo.totalWarning >= _maxWarning) { _socketInfo.Kick(_BanMessage); clientList.Remove(_socketInfo); return; } var _repWar = _WarningMessage.Replace("{warningNumber}", _socketInfo.totalWarning.ToString()); _socketInfo.Warning(_repWar); } else { _socketInfo.LastMessageDate = DateTime.Now; } } else { _socketInfo.LastMessageDate = DateTime.Now; } } string txt = myHelper.ByteToStr(_ss.buffer); var _clientLabel = $"(Client: {client.RemoteEndPoint}/ID:{client.Handle.ToString()}"; myMonitor.WriteConsole($"{_clientLabel} => {txt}", myMonitor.messageTypeEnum.Client); _ss.Clear(); client.BeginReceive(_ss.buffer, 0, SocketState.BUFFER_SIZE, 0, new AsyncCallback(Recive), _ss); } }