Esempio n. 1
0
        private void ReceiveData(IAsyncResult result)
        {
            if (!Connected)
            {
                return;
            }

            int dataRead;

            try
            {
                dataRead = mClient.Client.EndReceive(result);
            }
            catch
            {
                Disconnecting = true;
                return;
            }

            byte[] rawBytes = result.AsyncState as byte[];
            byte[] temp     = mRawData;
            mRawData = new byte[dataRead + temp.Length];
            Buffer.BlockCopy(temp, 0, mRawData, 0, temp.Length);
            Buffer.BlockCopy(rawBytes, 0, mRawData, temp.Length, dataRead);

            BSPacket p;

            while ((p = BSPacket.ReceivePacket(mRawData, out mRawData)) != null)
            {
                mReceiveList.Enqueue(p);
            }

            BeginReceive();
        }