public void Receive()
        {
            if (Sock != null || Sock.Connected)
            {
                var args   = SocketHelpers.AcquireSocketArg();
                var offset = 0; //_offset + _remainingLength;

                args.SetBuffer(_bufferSegment.Buffer.Array, _bufferSegment.Offset + offset, sizeBuffer - offset);

                args.UserToken  = this;
                args.Completed += ReceiveAsyncComplete;

                var willRaiseEvent = Sock.ReceiveAsync(args);

                if (!willRaiseEvent)
                {
                    ProcessRecieve(args);
                }
            }
        }