public override byte[] Serialize(byte[] header, RUDPPacket p) { MemoryStream ms = new MemoryStream(); using (BinaryWriter bw = new BinaryWriter(ms)) { bw.Write(header); bw.Write(p.Seq); bw.Write(p.Id); bw.Write(p.Qty); bw.Write((byte)p.Type); bw.Write((byte)p.Flags); bw.Write(p.Data == null ? 0 : p.Data.Length); if (p.Data != null) { bw.Write(p.Data); } bw.Write(p.intData == null ? 0 : p.intData.Length); if (p.intData != null) { foreach (int i in p.intData) { bw.Write(i); } } } return(ms.ToArray()); }
public override string AsString(RUDPPacket p) { string js = _js.Serialize(p); if (p.Data != null && p.Data.Length > 30) return dataRegex.Replace(js, "\"Data\":" + (p.Data == null ? 0 : p.Data.Length) + "b"); else return js; }
private void OnPacketReceived(RUDPPacket p) { if (p.Type == RUDPPacketType.NUL) return; if (p.Type == RUDPPacketType.DAT && p.Data.Length > 0) { Console.WriteLine("CLIENT <- " + Encoding.UTF8.GetString(p.Data)); OnCommandReceived(p.Src, _js.Deserialize<RDCCommand>(Encoding.UTF8.GetString(p.Data))); } }
public override string AsString(RUDPPacket p) { return(string.Format("CH:{0} | SEQ:{1} | ID:{2} | TYPE:{3} | QTY:{4} | DATA:{5}", p.Channel, p.Seq, p.Id, p.Type.ToString(), p.Qty, p.Data == null ? "" : (p.Data.Length > 64 ? p.Data.Length.ToString() : string.Join(",", Encoding.ASCII.GetString(p.Data))) )); }
public override string AsString(RUDPPacket p) { return(string.Format("SEQ:{0}|ID:{1}|QTY:{2}|TYPE:{3}|FLAGS:{4}|DATA:{5}|INTDATA:{6}", p.Seq, p.Id, p.Qty, p.Type.ToString(), p.Flags.ToString(), p.Data == null ? "" : (p.Data.Length > 30 ? p.Data.Length.ToString() : string.Join(",", p.Data)), p.intData == null ? "" : string.Join(",", p.intData) )); }
public override string AsString(RUDPPacket p) { string js = _js.Serialize(p); js = js + string.Format(" RT:{0} PROC:{2}", p.Retransmit ? 1 : 0, p.Processed ? 1 : 0); if (p.Data != null && p.Data.Length > 30) { return(dataRegex.Replace(js, "\"Data\":" + (p.Data == null ? 0 : p.Data.Length) + "b")); } else { return(js); } }
public override RUDPPacket Deserialize(byte[] header, byte[] data) { RUDPPacket p = new RUDPPacket(); MemoryStream ms = new MemoryStream(data); using (BinaryReader br = new BinaryReader(ms)) { br.ReadBytes(header.Length); p.Channel = br.ReadInt32(); p.Seq = br.ReadInt32(); p.Id = br.ReadInt32(); p.Qty = br.ReadInt32(); p.Type = (RUDPPacketType)br.ReadByte(); int dataLen = br.ReadInt32(); p.Data = br.ReadBytes(dataLen); } return(p); }
public override RUDPPacket Deserialize(byte[] header, byte[] data) { RUDPPacket p = new RUDPPacket(); MemoryStream ms = new MemoryStream(data); using (BinaryReader br = new BinaryReader(ms)) { br.ReadBytes(header.Length); p.Seq = br.ReadInt32(); p.Id = br.ReadInt32(); p.Qty = br.ReadInt32(); p.Type = (RUDPPacketType)br.ReadByte(); p.Flags = (RUDPPacketFlags)br.ReadByte(); int dataLen = br.ReadInt32(); p.Data = br.ReadBytes(dataLen); p.intData = new int[br.ReadInt32()]; for (int i = 0; i < p.intData.Length; i++) { p.intData[i] = br.ReadInt32(); } } return(p); }
public override byte[] Serialize(byte[] header, RUDPPacket p) { return header.Concat(Encoding.ASCII.GetBytes(_js.Serialize(p))).ToArray(); }
public abstract string AsString(RUDPPacket p);
public abstract byte[] Serialize(byte[] header, RUDPPacket p);