Ejemplo n.º 1
0
        internal void Encode(byte[] data, ref int index)
        {
            StreamId.Encode(FromSocketAtStreamId, data, ref index);
            PeerId.Encode(ToPeerId, data, ref index);
            if (ToEndPoint.Address.AddressFamily != System.Net.Sockets.AddressFamily.InterNetwork)
            {
                throw new NotSupportedException("only IPv4 is supported");
            }
#pragma warning disable CS0618 // Type or member is obsolete
            PacketProcedures.EncodeUInt32(data, ref index, (uint)ToEndPoint.Address.Address);
#pragma warning restore CS0618 // Type or member is obsolete
            PacketProcedures.EncodeUInt16(data, ref index, (ushort)ToEndPoint.Port);
        }
Ejemplo n.º 2
0
        void SendPayloadPacket(int length)
        {
            var timestampNow32 = SubtLocalPeer.LocalPeer.Time32;

            _recentTxBandwidth.OnTimeObserved(timestampNow32);

            if (StreamIsIdleCached == false)
            {
                _txSequence++;
                var index = _payloadPacketIndex;
                PacketProcedures.EncodeUInt32(_payloadPacket, ref index, timestampNow32);
                PacketProcedures.EncodeUInt16(_payloadPacket, ref index, _txSequence);
                PacketProcedures.EncodeUInt32(_payloadPacket, ref index, _timestamp32ToReflect);
                _stream.SendPacket(_payloadPacket, length);

                _recentTxBandwidth.Input(LocalLogicConfiguration.IpAndUdpHeadersSizeBits + length * 8);

                if (Stream.Debug)
                {
                    Debugger.Break();
                }
            }
        }
Ejemplo n.º 3
0
 public static void Encode(BinaryWriter writer, StreamId streamId)
 {
     PacketProcedures.EncodeUInt32(writer, streamId?.Id ?? 0);
 }
Ejemplo n.º 4
0
 public static void Encode(StreamId streamId, byte[] data, ref int index)
 {
     PacketProcedures.EncodeUInt32(data, ref index, streamId?.Id ?? 0);
 }