Esempio n. 1
0
        /// <summary>
        /// Init send data head info
        /// </summary>
        private void SendHead()
        {
            // Init Head
            int size;

            mTotal = mPacket.GetLength();
            if (mTotal <= 0)
            {
                size = 0;
            }
            else
            {
                // Type
                Buffer[0] = mPacket.GetPacketType();

                // Length
                byte[] lenBytes = BitConverter.GetBytes(mTotal);
                lenBytes.CopyTo(Buffer, 1);

                // Info
                short  infoLen      = mPacket.ReadInfo(Buffer, HeadSize);
                byte[] infoLenBytes = BitConverter.GetBytes(infoLen);
                infoLenBytes.CopyTo(Buffer, HeadSize - 2);

                size = HeadSize + infoLen;
            }
            // Check packet size
            if (size > 0)
            {
                // Init Size
                mCursor   = 0;
                mProgress = 0;

                // Post Start
                NotifyProgress();

                // Init the packet
                mPacket.StartPacket();

                // Send Head
                SendAsync(0, size);
            }
            else
            {
                // Send next
                mPacket = null;
                SendNext();
            }
        }