Пример #1
0
        /// <summary>
        /// Send control packet
        /// </summary>
        /// <param name="flags">SMUX header flags</param>
        private void SendControlPacket(SNISMUXFlags flags)
        {
            SNIPacket packet = new SNIPacket(headerSize: SNISMUXHeader.HEADER_LENGTH, dataSize: 0);

            lock (this)
            {
                SetupSMUXHeader(0, flags);
                _currentHeader.Write(packet.GetHeaderBuffer(SNISMUXHeader.HEADER_LENGTH));
                packet.SetHeaderActive();
            }
            _connection.Send(packet);
        }
Пример #2
0
        /// <summary>
        /// Send control packet
        /// </summary>
        /// <param name="flags">SMUX header flags</param>
        private void SendControlPacket(SNISMUXFlags flags)
        {
            byte[] headerBytes = null;

            lock (this)
            {
                GetSMUXHeaderBytes(0, (byte)flags, ref headerBytes);
            }

            SNIPacket packet = new SNIPacket();

            packet.SetData(headerBytes, SNISMUXHeader.HEADER_LENGTH);

            _connection.Send(packet);
        }
Пример #3
0
        /// <summary>
        /// Send control packet
        /// </summary>
        /// <param name="flags">SMUX header flags</param>
        private void SendControlPacket(SNISMUXFlags flags)
        {
            Span <byte> headerBytes = stackalloc byte[SNISMUXHeader.HEADER_LENGTH];

            lock (this)
            {
                GetSMUXHeaderBytes(0, flags, headerBytes);
            }

            SNIPacket packet = new SNIPacket(SNISMUXHeader.HEADER_LENGTH);

            packet.AppendData(headerBytes);

            _connection.Send(packet);
        }
Пример #4
0
        /// <summary>
        /// Send control packet
        /// </summary>
        /// <param name="flags">SMUX header flags</param>
        /// <param name="async">true if packet should be sent asynchronously</param>
        private void SendControlPacket(SNISMUXFlags flags, bool async)
        {
            byte[] headerBytes = null;

            lock (this)
            {
                GetSMUXHeaderBytes(0, (byte)flags, ref headerBytes);
            }

            SNIPacket packet = new SNIPacket(null);

            packet.SetData(headerBytes, SNISMUXHeader.HEADER_LENGTH);

            if (async)
            {
                _connection.SendAsync(packet, (sentPacket, error) => { });
            }
            else
            {
                _connection.Send(packet);
            }
        }
Пример #5
0
        /// <summary>
        /// Send control packet
        /// </summary>
        /// <param name="flags">SMUX header flags</param>
        /// <param name="async">true if packet should be sent asynchronously</param>
        /// <returns>True if completed successfully, otherwise false</returns>
        private SNIError SendControlPacket(SNISMUXFlags flags, bool async)
        {
            byte[] headerBytes = null;

            lock (this)
            {
                GetSMUXHeaderBytes(0, (byte)flags, ref headerBytes);
            }

            SNIPacket packet = new SNIPacket(headerBytes, SNISMUXHeader.HEADER_LENGTH);

            if (async)
            {
                SNIError sniError;
                _connection.SendAsync(packet, NullCallback, false, out sniError);
                return(sniError);
            }
            else
            {
                return(_connection.Send(packet));
            }
        }