Esempio n. 1
0
        bool OnDataReceived(NFStringRingBuffer sb)
        {
            head.Reset();

            if (sb.Pop(head.GetHeadBytes(), ConstDefine.NF_PACKET_HEAD_SIZE))
            {
                if (head.DeCode() && head.unDataLen == sb.Size() + ConstDefine.NF_PACKET_HEAD_SIZE)
                {
                    Int32 nBodyLen = (Int32)sb.Size();
                    if (nBodyLen > 0)
                    {
                        dataReceivedBodyStream.SetLength(0);
                        dataReceivedBodyStream.Position = 0;
                        sb.ToMemoryStream(dataReceivedBodyStream);

                        OnMessageEvent(head, dataReceivedBodyStream);

                        return(true);
                    }
                    else
                    {
                        //space packet, thats impossible
                    }
                }
            }


            return(false);
        }
        public bool Push(NFStringRingBuffer source, int size, bool readOnly = false)
        {
            if (size > source.Size())
            {
                return(false);
            }

            if (m_trasferTempData.Length < size)
            {
                m_trasferTempData = new byte[size];
            }

            source.Pop(m_trasferTempData, size, readOnly);

            this.Push(m_trasferTempData, size);

            return(true);
        }
Esempio n. 3
0
        //a whole message
        bool OnDataReceived(NFStringRingBuffer sb)
        {
            head.Reset();

            if (sb.Pop(head.GetHeadBytes(), ConstDefine.NF_PACKET_HEAD_SIZE))
            {
                if (head.DeCode() && head.unDataLen == sb.Size() + ConstDefine.NF_PACKET_HEAD_SIZE)
                {
                    Int32 nBodyLen = (Int32)sb.Size();
                    if (nBodyLen > 0)
                    {
                        if (head.unMsgID == 505)
                        {
                            System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); // 当地时区
                            long            timeStamp = (long)(DateTime.Now - startTime).TotalMilliseconds;                    // 相差秒数
                            Debug.Log("receive model msg " + timeStamp);
                            Debug.Log("start ToMemoryStream ");
                        }
                        dataReceivedBodyStream.SetLength(0);
                        dataReceivedBodyStream.Position = 0;
                        sb.ToMemoryStream(dataReceivedBodyStream);
                        if (head.unMsgID == 505)
                        {
                            System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); // 当地时区
                            long            timeStamp = (long)(DateTime.Now - startTime).TotalMilliseconds;                    // 相差秒数
                            Debug.Log("after ToMemoryStream " + timeStamp);
                        }

                        OnMessageEvent(head, dataReceivedBodyStream);

                        return(true);
                    }
                    else
                    {
                        //space packet, thats impossible
                    }
                }
            }


            return(false);
        }
Esempio n. 4
0
 public NFSocketPacket()
 {
     sb = new NFStringRingBuffer(ConstDefine.NF_PACKET_BUFF_SIZE);
 }