private void closeRequest(OnDemandData request)
        {
            try
            {
                if (socket == null)
                {
                    long currentTime = TimeService.CurrentTimeInMilliseconds();
                    if (currentTime - lastRequestTime < 4000L)
                    {
                        return;
                    }
                    lastRequestTime = currentTime;
                    socket          = clientInstance.openSocket(43594).ConfigureAwait(false).GetAwaiter().GetResult();
                    inputStream     = socket.GetStream();
                    outputStream    = socket.GetStream();
                    outputStream.WriteByte(15);
                    for (int j = 0; j < 8; j++)
                    {
                        inputStream.ReadByte();
                    }

                    loopCycle = 0;
                }

                payload[0] = (byte)request.dataType;
                payload[1] = (byte)(request.id >> 8);
                payload[2] = (byte)request.id;
                if (request.incomplete)
                {
                    payload[3] = 2;
                }
                else if (!clientInstance.isLoggedIn)
                {
                    payload[3] = 1;
                }
                else
                {
                    payload[3] = 0;
                }
                outputStream.Write(payload, 0, 4);
                writeLoopCycle = 0;
                failedRequests = -10000;
                return;
            }
            catch (SocketException ioexception)
            {
            }

            try
            {
                socket.Close();
            }
            catch (Exception _ex)
            {
            }

            socket       = null;
            inputStream  = null;
            outputStream = null;
            expectedSize = 0;
            failedRequests++;
        }