Esempio n. 1
0
        void OnTimer(object argstate)
        {
            if (_closed)
            {
                _timer.Dispose();
                return;
            }

            if (_postmap.Count == 0)
            {
                return;
            }

            if (DateTime.Now - _timerlastitem.SendTime < TimeSpan.FromMilliseconds(GetPackageLostMS()))
            {
                return;
            }


            if (_timerlastitem.PingCount > 10)
            {
                return;
            }

            _timerlastitem.PingCount++;

            SendToPeer(UDPMeta.CreateDataPing(SessionId, _readminindex, _timerlastitem.DataIndex));
        }