コード例 #1
0
        public void ReceiveHandle()
        {
            if (cacheList.Count < 4)
            {
                receive = false;
                return;
            }
            byte[] data = EncodingUtil.LengthDecode(ref cacheList);
            if (data == null)
            {
                receive = false;
                return;
            }
            SocketModel model = EncodingUtil.SocketModelDncode(data);

            iCenterHandler.Receive(model);
            ReceiveHandle();
        }
コード例 #2
0
ファイル: EncodingUtil.cs プロジェクト: yu821157174/Lcc
        public static SocketModel SocketModelDncode(byte[] bytes)
        {
            SocketModel model = new SocketModel();

            using (MemoryStream stream = new MemoryStream(bytes))
            {
                using (BinaryReader reader = new BinaryReader(stream))
                {
                    model.type    = reader.ReadByte();
                    model.area    = reader.ReadInt32();
                    model.command = reader.ReadInt32();
                    if (stream.Length > stream.Position)
                    {
                        model.message = DeserializationDecode(reader.ReadBytes((int)(stream.Length - stream.Position)));
                    }
                }
            }
            return(model);
        }
コード例 #3
0
ファイル: EncodingUtil.cs プロジェクト: yu821157174/Lcc
 public static byte[] SocketModelEncode(SocketModel model)
 {
     byte[] bytes;
     using (MemoryStream stream = new MemoryStream())
     {
         using (BinaryWriter writer = new BinaryWriter(stream))
         {
             writer.Write(model.type);
             writer.Write(model.area);
             writer.Write(model.command);
             if (model.message != null)
             {
                 writer.Write(SerializationEncode(model.message));
             }
             bytes = stream.ToArray();
         }
     }
     return(bytes);
 }