Exemplo n.º 1
0
        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());
        }
Exemplo n.º 2
0
 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;
 }
Exemplo n.º 3
0
 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)));
     }
 }
Exemplo n.º 4
0
 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)))
                          ));
 }
Exemplo n.º 5
0
 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)
                          ));
 }
Exemplo n.º 6
0
        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);
            }
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
        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);
        }
Exemplo n.º 9
0
 public override byte[] Serialize(byte[] header, RUDPPacket p)
 {
     return header.Concat(Encoding.ASCII.GetBytes(_js.Serialize(p))).ToArray();
 }
Exemplo n.º 10
0
 public abstract string AsString(RUDPPacket p);
Exemplo n.º 11
0
 public abstract byte[] Serialize(byte[] header, RUDPPacket p);