LiteNetLib.SimpleChannel.SendNextPacket C# (CSharp) Method

SendNextPacket() public method

public SendNextPacket ( ) : bool
return bool
        public bool SendNextPacket()
        {
            if (_outgoingPackets.Count == 0)
                return false;

            NetPacket packet;
            lock (_outgoingPackets)
            {
                packet = _outgoingPackets.Dequeue();
            }
            _peer.SendRawData(packet.RawData);
            _peer.Recycle(packet);
            return true;
        }
    }

Usage Example

Ejemplo n.º 1
0
        private void SendQueuedPackets(int currentMaxSend)
        {
            int currentSended = 0;

            while (currentSended < currentMaxSend)
            {
                //Get one of packets
                if (_reliableOrderedChannel.SendNextPacket() ||
                    _reliableUnorderedChannel.SendNextPacket() ||
                    _sequencedChannel.SendNextPacket() ||
                    _simpleChannel.SendNextPacket() ||
                    _fragmentChannel.SendNextPacket())
                {
                    currentSended++;
                }
                else
                {
                    //no outgoing packets
                    break;
                }
            }

            //Increase counter
            _sendedPacketsCount += currentSended;

            //If merging enabled
            if (_mergePos > 0)
            {
                if (_mergeCount > 1)
                {
                    NetUtils.DebugWrite("Send merged: " + _mergePos + ", count: " + _mergeCount);
                    _peerListener.SendRaw(_mergeData.RawData, 0, NetConstants.HeaderSize + _mergePos, _remoteEndPoint);
                }
                else
                {
                    //Send without length information and merging
                    _peerListener.SendRaw(_mergeData.RawData, NetConstants.HeaderSize + 2, _mergePos - 2, _remoteEndPoint);
                }
                _mergePos   = 0;
                _mergeCount = 0;
            }
        }
All Usage Examples Of LiteNetLib.SimpleChannel::SendNextPacket