public override byte[] GetBytes() { int len = Length; byte[] ret = new byte[len]; int counter = 0; NetLib.WriteUInt16(ret, ref counter, SourcePort); NetLib.WriteUInt16(ret, ref counter, DestinationPort); NetLib.WriteUInt32(ret, ref counter, SequenceNumber); NetLib.WriteUInt32(ret, ref counter, AcknowledgementNumber); NetLib.WriteByte08(ret, ref counter, dataOffsetAndNS_Flag); NetLib.WriteByte08(ret, ref counter, flags); NetLib.WriteUInt16(ret, ref counter, WindowSize); NetLib.WriteUInt16(ret, ref counter, checksum); NetLib.WriteUInt16(ret, ref counter, urgentPointer); //options for (int i = 0; i < Options.Count; i++) { NetLib.WriteByteArray(ret, ref counter, Options[i].GetBytes()); } counter = headerLength; NetLib.WriteByteArray(ret, ref counter, data); return(ret); }
public override byte[] GetBytes() { byte[] ret = new byte[Length]; int counter = 0; NetLib.WriteByte08(ret, ref counter, Code); NetLib.WriteByte08(ret, ref counter, (byte)(Length - 2)); NetLib.WriteUInt32(ret, ref counter, IPRebindingTimeT2); return(ret); }
public override byte[] GetBytes() { byte[] ret = base.GetBytes(); int counter = base.Length; NetLib.WriteUInt32(ret, ref counter, ttl); NetLib.WriteUInt16(ret, ref counter, (UInt16)data.Length); NetLib.WriteByteArray(ret, ref counter, data); return(ret); }
public override byte[] GetBytes() { byte[] ret = new byte[Length]; int counter = 0; NetLib.WriteByte08(ret, ref counter, Code); NetLib.WriteByte08(ret, ref counter, Length); NetLib.WriteUInt32(ret, ref counter, SenderTimeStamp); NetLib.WriteUInt32(ret, ref counter, EchoTimeStamp); return(ret); }
public byte[] GetBytes(UInt16 MaxLen) { //int len = 576; //Min size; //We will create a message of the min size and hop it fits. //byte[] ret = new byte[240]; //Fixed size section byte[] ret = new byte[MaxLen]; int counter = 0; NetLib.WriteByte08(ret, ref counter, OP); NetLib.WriteByte08(ret, ref counter, HardwareType); NetLib.WriteByte08(ret, ref counter, HardwareAddressLength); NetLib.WriteByte08(ret, ref counter, Hops); NetLib.WriteUInt32(ret, ref counter, TransactionID); NetLib.WriteUInt16(ret, ref counter, Seconds); NetLib.WriteUInt16(ret, ref counter, Flags); NetLib.WriteByteArray(ret, ref counter, ClientIP); NetLib.WriteByteArray(ret, ref counter, YourIP); NetLib.WriteByteArray(ret, ref counter, ServerIP); NetLib.WriteByteArray(ret, ref counter, GatewayIP); NetLib.WriteByteArray(ret, ref counter, ClientHardwareAddress); //empty bytes NetLib.WriteByteArray(ret, ref counter, new byte[64]); NetLib.WriteByteArray(ret, ref counter, new byte[128]); NetLib.WriteUInt32(ret, ref counter, MagicCookie); //const UInt16 minOpLength = 64; //UInt16 OpLength = minOpLength; //byte[] retOp = new byte[minOpLength]; //int opOffset = 0; for (int i = 0; i < Options.Count; i++) { NetLib.WriteByteArray(ret, ref counter, Options[i].GetBytes()); } ////byte[] RetFinal = new byte[OpLength+240]; //byte[] RetFinal = new byte[MaxLen]; //Utils.memcpy(ref RetFinal, 0, ret, 0, 240); //Utils.memcpy(ref RetFinal, 240, retOp, 0, OpLength); //return RetFinal; return(ret); }