Exemplo n.º 1
0
 public void AddToQueue(NetPacket packet)
 {
     //Monitor.Enter(_outgoingPackets);
     packet.DontRecycleNow = true;
     _outgoingPackets.Enqueue(packet);
     //Monitor.Exit(_outgoingPackets);
 }
Exemplo n.º 2
0
        internal void SendRawData(NetPacket packet)
        {
            packet.Prepare();

            //2 - merge byte + minimal packet size + datalen(ushort)
            if (_netManager.MergeEnabled &&
                CanMerge(packet.Property))
            {
                if (_mergePos + packet.Size + sizeof(ushort) >= (_mtu - NetPacket.GetHeaderSize(PacketProperty.Merged)))
                {
                    FlushMergePacket();
                }

                _mergedPackets.Enqueue(packet);
                //FastBitConverter.GetBytes(_mergeData.RawData, _mergePos, (ushort)packet.Size);
                //Buffer.BlockCopy(packet.RawData, 0, _mergeData.RawData, _mergePos + sizeof(ushort), packet.Size);
                _mergePos += packet.Size + sizeof(ushort);
                _mergeCount++;

                //DebugWriteForce("Merged: " + _mergePos + "/" + (_mtu - 2) + ", count: " + _mergeCount);
                return;
            }

            NetUtils.DebugWrite(ConsoleColor.DarkYellow, "[P]SendingPacket: " + packet.Property);
            _netManager.SendRawAndRecycle(packet, _remoteEndPoint);
#if STATS_ENABLED
            Statistics.PacketsSent++;
            Statistics.BytesSent += (ulong)packet.Size;
#endif
            return;
        }
Exemplo n.º 3
0
 private void EnqueueEvent(NetEvent evt)
 {
     if (PollEventsAtTheEnd == false)
     {
         ProcessEvent(evt);
     }
     else
     {
         _netEventsQueue.Enqueue(evt);
     }
 }
Exemplo n.º 4
0
 public void AddToQueue(NetPacket packet)
 {
     packet.DontRecycleNow = false;
     _outgoingPackets.Enqueue(packet);
 }