Beispiel #1
0
    public ushort getUShort()
    {
        int nLen = sizeof(ushort);

        if (streamPos + nLen > this._bytes.Length)
        {
            Debug.Log(" Failed: 长度越界 NetReader: getUShort");
            return(0);
        }

        ushort val = BitConverter.ToUInt16(this._bytes, this.streamPos);

        streamPos += nLen;

        if (this.RecordStack.Count > 0)
        {
            RECORDINFO info = RecordStack.Peek();

            if (info.RecordReadSize + nLen > info.RecordSize)
            {
                Debug.Log(" Failed: 记录长度越界 NetReader: getUShort");
                return(0);
            }

            info.RecordReadSize += nLen;
        }

        return(val);
    }
Beispiel #2
0
    public string getString(int nLen)
    {
        if (this.streamPos + nLen > this.bytes.Length)
        {
            Debug.Log(" Failed: 长度越界 NetReader: getString");
            return(null);
        }

        string str = Encoding.UTF8.GetString(this.bytes, this.streamPos, nLen);

        this.streamPos += nLen;

        if (this.RecordStack.Count > 0)
        {
            RECORDINFO info = RecordStack.Peek();

            if (info.RecordReadSize + nLen > info.RecordSize)
            {
                Debug.Log(" Failed: 记录长度越界 NetReader: getString");
                return(null);
            }

            info.RecordReadSize += nLen;
        }

        return(str);
    }
Beispiel #3
0
    public sbyte getSByte()
    {
        int nLen = sizeof(sbyte);

        if (this.streamPos + nLen > this._bytes.Length)
        {
            Debug.Log(" Failed: 长度越界  NetReader: getSByte ");
            return(0);
        }

        sbyte bt = Convert.ToSByte(_bytes[this.streamPos]);

        this.streamPos += nLen;

        if (this.RecordStack.Count > 0)
        {
            RECORDINFO info = RecordStack.Peek();

            if (info.RecordReadSize + nLen > info.RecordSize)
            {
                Debug.Log(" Failed: 记录长度越界 NetReader: getSByte");
                return(0);
            }

            info.RecordReadSize += nLen;
        }

        return(bt);
    }
Beispiel #4
0
    public DateTime getDateTime()
    {
        int nLen = sizeof(long);

        if (streamPos + nLen > this.bytes.Length)
        {
            Debug.Log(" Failed: 长度越界 NetReader: getDateTime");
            return(DateTime.MinValue);
        }

        long val = BitConverter.ToInt64(this.bytes, this.streamPos);

        streamPos += nLen;

        if (this.RecordStack.Count > 0)
        {
            RECORDINFO info = RecordStack.Peek();

            if (info.RecordReadSize + nLen > info.RecordSize)
            {
                Debug.Log(" Failed: 记录长度越界 NetReader: getDateTime");
                return(DateTime.MinValue);
            }

            info.RecordReadSize += nLen;
        }

        return(FromUnixTime(Convert.ToDouble(val)));
    }
Beispiel #5
0
    public Int64 readInt64()
    {
        int nLen = sizeof(Int64);

        if (streamPos + nLen > this.bytes.Length)
        {
            Debug.Log(" Failed: 长度越界 NetReader: readInt64");
            return(0);
        }

        Int64 val = BitConverter.ToInt64(this.bytes, this.streamPos);

        streamPos += nLen;

        if (this.RecordStack.Count > 0)
        {
            RECORDINFO info = RecordStack.Peek();

            if (info.RecordReadSize + nLen > info.RecordSize)
            {
                Debug.Log(" Failed: 记录长度越界 NetReader: readInt64");
                return(0);
            }

            info.RecordReadSize += nLen;
        }

        return(val);
    }
Beispiel #6
0
    public double getDouble()
    {
        int nLen = sizeof(double);

        if (streamPos + nLen > this.bytes.Length)
        {
            Debug.Log(" Failed: 长度越界 NetReader: getDouble");
            return(0);
        }

        double val = BitConverter.ToDouble(this.bytes, this.streamPos);

        streamPos += nLen;

        if (this.RecordStack.Count > 0)
        {
            RECORDINFO info = RecordStack.Peek();

            if (info.RecordReadSize + nLen > info.RecordSize)
            {
                Debug.Log(" Failed: 记录长度越界 NetReader: getDouble");
                return(0);
            }

            info.RecordReadSize += nLen;
        }

        return(val);
    }
Beispiel #7
0
    public int getInt()
    {
        int nLen = sizeof(int);

        if (streamPos + nLen > this.bytes.Length)
        {
            Debug.Log(" Failed: 长度越界 NetReader: getInt" + ActionId);
            return(0);
        }

        int val = BitConverter.ToInt32(this.bytes, this.streamPos);

        streamPos += nLen;

        if (this.RecordStack.Count > 0)
        {
            RECORDINFO info = RecordStack.Peek();

            if (info.RecordReadSize + nLen > info.RecordSize)
            {
                Debug.Log(" Failed: 记录长度越界 NetReader: getInt" + ActionId);
                return(0);
            }

            info.RecordReadSize += nLen;
        }

        return(val);
    }
Beispiel #8
0
    public byte getByte()
    {
        int nLen = sizeof(byte);

        if (this.streamPos + nLen > this.bytes.Length)
        {
            Debug.Log(" Failed: 长度越界  NetReader: getBYTE ");
            return(0);
        }

        byte bt = bytes[this.streamPos];

        this.streamPos += nLen;

        if (this.RecordStack.Count > 0)
        {
            RECORDINFO info = RecordStack.Peek();

            if (info.RecordReadSize + nLen > info.RecordSize)
            {
                Debug.Log(" Failed: 记录长度越界 NetReader: getBYTE");
                return(0);
            }

            info.RecordReadSize += nLen;
        }

        return(bt);
    }
Beispiel #9
0
 private bool CheckRecordSize(int nLen)
 {
     if (this.RecordStack.Count > 0)
     {
         RECORDINFO info = RecordStack.Peek();
         if (info.RecordReadSize + nLen > info.RecordSize)
         {
             return(true);
         }
         info.RecordReadSize += nLen;
     }
     return(false);
 }
Beispiel #10
0
 public void recordEnd()
 {
     if (RecordStack.Count > 0)
     {
         RECORDINFO info = RecordStack.Pop();
         this.streamPos += (info.RecordSize - info.RecordReadSize);
         if (RecordStack.Count > 0)
         {
             RECORDINFO parent = RecordStack.Peek();
             parent.RecordReadSize += info.RecordSize - 4;
         }
     }
 }
Beispiel #11
0
    public bool recordBegin()
    {
        int nLen = sizeof(int);

        if (streamPos + nLen > this._bytes.Length)
        {
            Debug.Log(" Failed: 长度越界 NetReader: recordBegin ");
            return(false);
        }

        int nRecoredSize = getInt();

        RECORDINFO info = new RECORDINFO(nRecoredSize, nLen);

        RecordStack.Push(info);

        return(nRecoredSize > 4);
    }
Beispiel #12
0
    public bool recordBegin()
    {
        int nLen = sizeof(int);
        if (streamPos + nLen > this._bytes.Length)
        {
            Debug.Log(" Failed: 长度越界 NetReader: recordBegin ");
            return false;
        }

        int nRecoredSize = getInt();

        RECORDINFO info = new RECORDINFO(nRecoredSize, nLen);
        RecordStack.Push(info);

        return nRecoredSize > 4;
    }