public override void Decode(byte[] buffer, int offset, int length) { if (Action != ReadInt(buffer, offset)) { ThrowInvalidActionException(); } TransactionId = ReadInt(buffer, offset + 4); Interval = TimeSpan.FromSeconds(ReadInt(buffer, offset + 8)); Leechers = ReadInt(buffer, offset + 12); Seeders = ReadInt(buffer, offset + 16); IList <Peer> peers = Peer.FromCompact(buffer, 20); Peers.AddRange(peers); }
public override void Decode(ReadOnlySpan <byte> buffer) { if (Action != ReadInt(ref buffer)) { ThrowInvalidActionException(); } TransactionId = ReadInt(ref buffer); Interval = TimeSpan.FromSeconds(ReadInt(ref buffer)); Leechers = ReadInt(ref buffer); Seeders = ReadInt(ref buffer); IList <PeerInfo> peers = PeerInfo.FromCompact(buffer); Peers.AddRange(peers); }