public NewIncomingConnectionPacket(ref RakDecoder decoder) { InternalAddress = new RakAddress[10]; ServerAddress = decoder.Address(); for (int i = 0; i < 10; i++) { InternalAddress[i] = decoder.Address(); } TimeSinceStart1 = decoder.Timestamp(); TimeSinceStart2 = decoder.Timestamp(); }
public void NonTrivial_Address() { var bytes = new byte[16]; new Random().NextBytes(bytes); var endpoint = new RakAddress(new IPEndPoint(new IPAddress(bytes), 0x4ABC)); Encoder.Encode(endpoint); var encoded = Encoder.Get(); Assert.AreEqual(encoded.Length, 19); Assert.AreEqual(encoded[0], 6); //Is IPv6 Assert.AreEqual(encoded[17], 0x4A); //First part of port }
public OpenConnectionRequestPacket(byte[] data) { RakDecoder decoder = new RakDecoder(data); Type = (PacketType)decoder.Byte(); decoder.Magic(); switch (Type) { case PacketType.OpenConnectionRequest1: ProtocolVersion = decoder.Byte(); break; case PacketType.OpenConnectionRequest2: Address = decoder.Address(); MtuSize = decoder.Short(); ClientID = decoder.Long().Unsigned(); break; default: Debug.Assert(false, "Unreachable."); break; } // Null padding decoder.Raw(data.Length - decoder.Pos); }