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); }
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(); } } }
public static void Encode(BinaryWriter writer, StreamId streamId) { PacketProcedures.EncodeUInt32(writer, streamId?.Id ?? 0); }
public static void Encode(StreamId streamId, byte[] data, ref int index) { PacketProcedures.EncodeUInt32(data, ref index, streamId?.Id ?? 0); }