public virtual byte[] GenerateResponse(NatPacketType packetType) { List <byte> data = new List <byte>(); data.AddRange(MagicData); data.Add(Version); data.Add((byte)packetType); data.AddRange(BitConverter.GetBytes(Cookie)); return(data.ToArray()); }
public override byte[] GenerateResponse(NatPacketType packetType) { List <byte> data = new List <byte>(); data.AddRange(base.GenerateResponse(packetType)); data.AddRange(((IPEndPoint)RemoteEndPoint).Address.GetAddressBytes()); data.AddRange(BitConverter.GetBytes((short)((IPEndPoint)RemoteEndPoint).Port)); data.Add(GotYourData); data.Add(Finished); return(data.ToArray()); }
public virtual bool Parse(byte[] recv) { if (recv.Length < Size) { return(false); } Version = recv[MagicData.Length]; PacketType = (NatPacketType)recv[MagicData.Length + 1]; Cookie = BitConverter.ToInt32(ByteTools.SubBytes(recv, MagicData.Length + 2, 4)); return(true); }
public virtual bool Parse() { if (RawRequest.Length < Size) { return(false); } Version = RawRequest[MagicData.Length]; PacketType = (NatPacketType)RawRequest[MagicData.Length + 1]; Cookie = BitConverter.ToUInt32(ByteTools.SubBytes(RawRequest, MagicData.Length + 2, 4)); return(true); }
public override byte[] GenerateResponse(NatPacketType packetType) { List <byte> data = new List <byte>(); data.AddRange(base.GenerateResponse(packetType)); data.Add(PortType); data.Add(ClientIndex); data.Add(UseGamePort); data.AddRange(BitConverter.GetBytes(LocalIP)); data.AddRange(BitConverter.GetBytes(LocalPort)); return(data.ToArray()); }
/// <summary> /// /// </summary> /// <param name="packetType"></param> /// <param name="endPoint">public endpoint</param> /// <returns></returns> public byte[] GenerateResponse(NatPacketType packetType, EndPoint endPoint) { List <byte> data = new List <byte>(); data.AddRange(base.GenerateResponse(packetType)); data.Add(PortType); data.Add(ClientIndex); data.Add(UseGamePort); data.AddRange(((IPEndPoint)endPoint).Address.GetAddressBytes()); data.AddRange(BitConverter.GetBytes((short)((IPEndPoint)endPoint).Port)); return(data.ToArray()); }
public override byte[] GenerateResponse(NatPacketType packetType) { List <byte> data = new List <byte>(); data.AddRange(base.GenerateResponse(packetType)); data.Add(PortType); data.Add(ClientIndex); data.Add(NegResult); data.AddRange(BitConverter.GetBytes((int)NatType)); data.AddRange(BitConverter.GetBytes((int)MappingScheme)); data.AddRange(Encoding.ASCII.GetBytes(GameName)); return(data.ToArray()); }
public BasePacket(byte[] data) { if (data.Length < BasePacketSize) { return; } byte[] sub = ByteExtensions.SubBytes(data, 0, magicDataLen); //bool isEqual = Array.Equals(sub, NatNegInfo.MagicData); if (sub[0] != NatNegInfo.MagicData[0] || sub[1] != NatNegInfo.MagicData[1] || sub[2] != NatNegInfo.MagicData[2]) { return; } if (data[magicDataLen + 2] < 0 || data[magicDataLen + 2] > (byte)NatPacketType.PreInitAck) { return; } Version = data[magicDataLen]; PacketType = (NatPacketType)data[magicDataLen + 1]; Cookie = BitConverter.ToInt32(ByteExtensions.SubBytes(data, magicDataLen + 2, 4)); }
public NNRequestBase SetPacketType(NatPacketType type) { PacketType = type; return(this); }
public BasePacket SetPacketType(NatPacketType type) { PacketType = type; return(this); }