コード例 #1
0
        public byte[] GetBytes(byte flag)
        {
            byte[]       buff = null;
            BinaryWriter sw   = null;// new BinaryWriter(stream);

            //Int16 val = 0xAA + 0xBB;
            if (Type == (int)MessageType.Beep)
            {
                buff = new byte[8];
                sw   = GetWriter(buff);
                sw.WriteShort((short)buff.Length);
                WriteCommand(sw);
            }

            else if (Type == (int)MessageType.Login)
            {
                buff = new byte[16];
                sw   = GetWriter(buff);
                sw.WriteShort((short)buff.Length);
                WriteCommand(sw);
                sw.Write(Key);
                var tmp = DateTime.Now.GetBytes();
                sw.Write(tmp);
                sw.Write(flag);//注册标志;
            }

            else if (Type == (int)MessageType.Detail)
            {
                buff = new byte[9];
                sw   = GetWriter(buff);
                sw.WriteShort((short)buff.Length);
                WriteCommand(sw);

                if (Datas != null)
                {
                    sw.Write(flag);
                }
            }

            else if (Type == (int)MessageType.BlackTable)
            {
                buff = new byte[13];
                sw   = GetWriter(buff);
                sw.WriteShort((short)buff.Length);
                WriteCommand(sw);
                var table   = BlackTableHelper.GetBlackTable();
                var version = BlackTableHelper.GetBlackTableVersion(table);
                sw.Write(version);
                var len = (short)BlackTableHelper.GetBlackTable().CurrenciesNumber.Count;
                sw.WriteShort(len);
            }

            else if (Type == (int)MessageType.DownLoadBlackTable)
            {
                buff = new byte[26];
                sw   = GetWriter(buff);
                sw.WriteShort((short)buff.Length);
                WriteCommand(sw);
                var index = Datas.ReadShort(0);
                var lst   = BlackTableHelper.GetBlackTable().CurrenciesNumber;
                if (index > lst.Count)
                {
                    sw.Write(BlackTable.Blank);
                }

                else
                {
                    var item = lst[index - 1];
                    sw.Write(item);
                }
            }

            if (sw != null)
            {
                var count = Sum(buff);
                sw.WriteShort(count);
                sw.Close();
            }

            return(buff);
        }