Chimney.MPD.ChimneyMPDServer.ReadResponse C# (CSharp) Method

ReadResponse() private method

private ReadResponse ( StreamSocket streamSocket, int responseId ) : System.Threading.Tasks.Task
streamSocket Windows.Networking.Sockets.StreamSocket
responseId int
return System.Threading.Tasks.Task
        async Task ReadResponse(StreamSocket streamSocket, int responseId)
        {
            try
            {
                DataReader dataReader = new DataReader(streamSocket.InputStream);

                dataReader.InputStreamOptions = InputStreamOptions.Partial;

                bool isSocketOpen = true;

                while (isSocketOpen)
                {
                    bool isFinish = false;
                    string text = string.Empty;

                    while (!isFinish)
                    {
                        if (await dataReader.LoadAsync(65000) == 0)
                        {
                            isSocketOpen = false;
                            isFinish = true;
                        }
                        else
                        {
                            string s = dataReader.ReadString(dataReader.UnconsumedBufferLength);
                            text += s;
                            if (text.EndsWith(MPDKeyWords.Response.LINEBREAK))
                            {
                                isFinish = true;
                            }
                        }
                    }

                    if (isSocketOpen)
                    {
                        bool noidle = ParseResponse(streamSocket, text, responseId);
                        if (!password_confirmed) await SendResponse("ACK [3@0] {password} incorrect password\n", streamSocket);
                        bool suc = (noidle) ? await SendResponse(responseId, true) : await SendResponse(responseId);
                        if (!suc) isSocketOpen = false;
                    }
                }
            }
            catch {
            }
        }