/// <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(); } }