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);
        }
Esempio n. 2
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);
        }