public void AddToQueue(NetPacket packet) { //Monitor.Enter(_outgoingPackets); packet.DontRecycleNow = true; _outgoingPackets.Enqueue(packet); //Monitor.Exit(_outgoingPackets); }
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; }
private void EnqueueEvent(NetEvent evt) { if (PollEventsAtTheEnd == false) { ProcessEvent(evt); } else { _netEventsQueue.Enqueue(evt); } }
public void AddToQueue(NetPacket packet) { packet.DontRecycleNow = false; _outgoingPackets.Enqueue(packet); }