Exemple #1
0
        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);
            }
        }